操作系统内存管理思维导图总结
操作系统内存管理思维导图总结笔记在导图里面 https://www.processon.com/view/link/60a2668563768925076bb0cb 操作系统–虚拟内存管理
操作系统(Linux)文件系统思维导图总结
操作系统(Linux)文件系统思维导图总结内容较多,浏览器建议使用大纲查看。 https://www.processon.com/view/link/60eef0c15653bb06f24a2406 https://www.processon.com/view/link/60a511767d9c0830244d41b3
日志放在拦截器还是过滤器
Filter过滤器是 Web 应用程序组件,可以在请求到达 Servlet 之前对其进行访问,也可以在响应信息返回到客户端之前对其进行拦截。 Filter 的接口方法: init:Serverlet 容器创建过滤器实例的时候调用 doFilter:拦截到达的请求,检查和处理Header的body的数据 destory:销毁过滤器,doFilter 中所有的方法超时之后,web 容器才会调用销毁 链式调用: Interceptor拦截器是 AOP 的一种实现策略,用于在某个方法或宁段被访问前对它进行拦截,然后在其之前或之后加上某些操作。 Interceptor 的接口方法:preHandler、postHandler、afterCompletion HandlerInterceptor 的接口方法: preHandle:方法前置初始化操作,请求预处理,权限校验,返回Boolean postHandle:方法后置处理,Controller 调用之后,DispatcherServelet视图渲染之前处理 afterCompletion:请求处理完成,包括 DispatcherS...
时间格式不能正常转换?
@DateTimeFormat 注解前台到后台的时间格式转换,对于GET 请求参数可以正常工作。对于 POST 请求会报反序列化错误 POST 请求会使用 JSON 反序列化,不会使用 @DateTimeFormat 注解。 POST 表单(body)实现时间格式转换的方法使用 @JsonFormat 注解但是这种代码侵入性强,可维护性差 实现自定义格式转换器 @JsonDeserialize可以支持多种时间格式的转换: 指定反序列化器 定义全局配置类避免冗余代码 指定转换器做Date类型的反序列化: 在对象中就不需要指定对应的注解了。
操作系统CPU和内核思维导图总结
操作系统CPU和内核思维导图总结https://www.processon.com/view/link/60eef701e0b34d06fba955b4
最长回文子串
题目链接: 5. 最长回文子串 题解链接:5. 最长回文子串 - 力扣(LeetCode) 中心扩散法从每一个位置出发,向两边扩散即可。遇到不是回文的时候结束。举个例子,str=acdbbdaa 我们需要寻找从第一个 b(位置为 3)出发最长回文串为多少。怎么寻找? 首先往左寻找与当期位置相同的字符,直到遇到不相等为止。 然后往右寻找与当期位置相同的字符,直到遇到不相等为止。 最后左右双向扩散,直到左和右不相等。如下图所示: 每个位置向两边扩散都会出现一个窗口大小(cur_len)。如果 cur_len > length(用来表示最长回文串的长度)。则更新 length 的值。 因为我们最后要返回的是具体子串,而不是长度,因此,还需要记录一下 length 时的起始位置(start),即此时还要 start = left。 12345678910111213141516171819202122class Solution: def longestPalindrome(self, s: str) -> str: ...
服务器丢包分析-iptables规则-MTU大小设置错误-perf-火焰图分析处理请求时内核线程调用
服务器丢包分析–iptables规则以及MTU大小设置错误容器利用 Linux 内核提供的命名空间技术,将不同应用程序的运行隔离起来,并用统一的 镜像,来管理应用程序的依赖环境。这为应用程序的管理和维护,带来了极大的便捷性,并 进一步催生了微服务、云原生等新一代技术架构。 容易发生启动过慢、运行一段时间后 OOM 退出等问题。容器化后,应用程序会通过命名空间进行隔离。所以,你在分析时,不要忘了**结合命名空间、cgroups、iptables **等来综合分析: cgroups 会影响容器应用的运行; iptables 中的 NAT,会影响容器的网络性能; 叠加文件系统,会影响应用的 I/O 性能等。 数据包还没传输到应用程序中, 就被丢弃了。这些被丢弃包的数量,除以总的传输包数,也就是我们常说的丢包率。丢包通常会带来严重的性能下降,特别是对 TCP 来说,丢包通常意味着网络拥塞和重传, 进而还会导致网络延迟增大、吞吐降低。 丢包模拟1docker run --name nginx --hostname nginx --privileged -p 80:80 -it...
本地新建分支推送后再次拉取的错误
本地新建分支推送后再次拉取的错误本地新建一个分支后,必须要做远程分支关联。如果没有关联,git会在下面的操作中提示你显式的添加关联。关联目的是如果在本地分支下操作: git pull, git push ,不需要指定在命令行指定远程的分支. git在本地新建分支, push到remote服务器上之后,你只要没有显示指定, git pull 的时候,就会提示你。 git push --set-upstream origin dev 等价于 <font style="color:#4D4D4D;">git push -u origin my_branch</font> origin 是默认的远程版本库名称 在你第一次提交你的分支的时候使用。它会像<font style="color:#4D4D4D;">git branch --set-upstream</font>一样在本地分支与远程分去建立联系。 我在 Git 中创建了一个新分支: 1git branch my_branch 推它: 1...
格式化输出与文本处理
——–\:\:s/([0-9]{2})/([0-9]{2})/([0-9]{4})$/\3-\1-\2/$ i\:End Of Report 12345678910111213141516171819202122232425262728这个脚本现在加入了 nl 的逻辑页面标记并且在报告的最后加了一个 footer。记得我们在我们的标记中必须两次使用反斜杠, 因为他们通常被 sed 解释成一个转义字符。下一步,我们将结合 sort, sed, nl 来生成我们改进的报告:```bash$ sort -k 1,1 -k 2n distros.txt | sed -f distros-nl.sed | nl Linux Distributions Report Name Ver. Released ---- ---- -------- 1 Fedora 5 2006-03-20 2 Fedora 6 2006-10-24 3 Fe...
案例分析-DDOS攻击、网络延迟(延迟确认纳格算法)、NAT延迟
DDoS 攻击DDoS 的前身是 DoS(Denail of Service),即**拒绝服务攻击,指利用大量的合理请求, 来占用过多的目标资源,从而使目标服务无法响应正常请求。** DDoS(Distributed Denial of Service) 则是在 DoS 的基础上,采用了分布式架构,利用多台主机同时攻击目标主机。这样,即使目标服务部署了网络防御设备,面对大量网络请 求时,还是无力应对。 DDoS 类型 耗尽带宽。无论是服务器还是路由器、交换机等网络设备,带宽都有固定的上限。 带宽耗尽后,就会发生网络拥堵,从而无法传输其他正常的网络报文。 耗尽操作系统的资源。网络服务的正常运行,都需要一定的系统资源,像是 CPU、内存等物理资源,以及连接表等软件资源。一旦资源耗尽,系统就不能处理其他正 常的网络连接。 消耗应用程序的运行资源。应用程序的运行,通常还需要跟其他的资源或系统交互。如果应用程序**一直忙于处理无效请求,也会导致正常请求的处理变慢,甚至得不到响 应。** 构造大量不同的域名来攻击 DNS 服务器,就会导致 DNS 服务器不停执行迭代查询****,并更新缓存...