TCP半连接全连接(一) -- 全连接队列相关过程
梳理学习TCP建立连接相关过程和全连接队列,结合相关配置进行实验。 1. 背景 最近碰到一个服务端程序处理请求时没有响应的问题,协助尝试定位。初步抓包和ss/netstat定位是服务端一直没对第一次SYN做响应,也能观察到listen队列溢出了。服务端基于python框架,通过多进程进行监听处理。 在另一个环境进行复现后,发现出问题的子进程有连接一直处于CLOSE_WAIT且不响应其他...
梳理学习TCP建立连接相关过程和全连接队列,结合相关配置进行实验。 1. 背景 最近碰到一个服务端程序处理请求时没有响应的问题,协助尝试定位。初步抓包和ss/netstat定位是服务端一直没对第一次SYN做响应,也能观察到listen队列溢出了。服务端基于python框架,通过多进程进行监听处理。 在另一个环境进行复现后,发现出问题的子进程有连接一直处于CLOSE_WAIT且不响应其他...
7种结构型设计模式示例记录 1. 背景 通过示例(C++)加强对设计模式的体感。 2. 23种设计模式简要说明 这里说明7种结构型设计模式 适配器模式(Adapter) 桥接模式(Bridge) 组合模式(Composite) 装饰器模式(Decorator) 外观模式(Facade) 享元模式(Flyweight) 代理模式(Proxy) 3...
行为型设计模式-命令模式模式示例记录 1. 背景 通过示例(C++)加强对设计模式的体感。 2. 23种设计模式简要说明 这里说明命令模式 3. 命令模式(Command Pattern) 命令模式(Command Pattern)是设计模式中的一种行为型模式,它将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。...
行为型设计模式-策略模式模式示例记录 1. 背景 通过示例(C++)加强对设计模式的体感。 2. 23种设计模式简要说明 这里说明策略模式 3. 策略模式(Strategy Pattern) 策略模式(Strategy Pattern)是一种行为设计模式,它使你能够定义一系列算法,并将每一个算法封装起来,使它们可以互相替换。策略模式使得算法可以独立于使用它的客户端变化。 策...
行为型设计模式-观察者模式示例记录 1. 背景 通过示例(C++)加强对设计模式的体感。 2. 23种设计模式简要说明 这里说明观察者模式 3. 观察者模式(Observer Pattern) 观察者模式(Observer Pattern) 是一种行为设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。 这个主题对象在状态发生变化时,会通知所有依...
创建型设计模式-原型模式示例记录 1. 背景 最近梳理项目模块代码,其中部分模块和工具涉及一些设计模式,画了一些相关的流程图和草图。重新打开极客时间里设计模式课程,通过示例(C++)加强一些体感。 2. 23种设计模式简要说明 这里说明原型模式 3. 原型模式(Prototype Pattern) 如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同)...
创建型设计模式-建造者模式示例记录 1. 背景 最近梳理项目模块代码,其中部分模块和工具涉及一些设计模式,画了一些相关的流程图和草图。重新打开极客时间里设计模式课程,通过示例(C++)加强一些体感。 2. 23种设计模式简要说明 这里说明建造者模式 3. 建造者模式(Builder Pattern) Builder 模式,中文翻译为建造者模式或者构建者模式,也有人叫它生成器模...
创建型设计模式-工厂模式示例记录 1. 背景 最近梳理项目模块代码,其中部分模块和工具涉及一些设计模式,画了一些相关的流程图和草图。重新打开极客时间里设计模式课程,通过示例(C++)加强一些体感。 2. 23种设计模式简要说明 工厂模式通常分为简单工厂模式、工厂方法模式和抽象工厂模式。 在 GoF 的《设计模式》一书中,它将简单工厂模式看作是工厂方法模式的一种特例,所以工厂模式...
创建型设计模式-单例模式示例记录 1. 背景 最近梳理项目模块代码,其中部分模块和工具涉及一些设计模式,画了一些相关的流程图和草图。重新打开极客时间里设计模式课程,通过示例(C++)加强一些体感。 2. 23种设计模式简要说明 23种设计模式:创建型(5种)、结构型(7种)、行为型(11种) 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一...
记一个/etc/init.d下的服务自启动设置失败问题 1. 背景 最近碰到一个服务入口脚本(/etc/init.d/下)中误删除了脚本chkconfig注释导致服务没有自启动的问题,并且在CentOS7.7上正常,但是在openEuler上没有正常自启动。 跟踪执行过程和systemd源码定位到了原因,本文进行简单记录。 2. 现象模拟 2.1. 快速模拟步骤 1、阿里云抢...