创建型设计模式-工厂模式
创建型设计模式-工厂模式示例记录 1. 背景 最近梳理项目模块代码,其中部分模块和工具涉及一些设计模式,画了一些相关的流程图和草图。重新打开极客时间里设计模式课程,通过示例(C++)加强一些体感。 2. 23种设计模式简要说明 工厂模式通常分为简单工厂模式、工厂方法模式和抽象工厂模式。 在 GoF 的《设计模式》一书中,它将简单工厂模式看作是工厂方法模式的一种特例,所以工厂模式...
创建型设计模式-工厂模式示例记录 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、阿里云抢...
利用SystemTap监测服务被谁kill了 1. 背景 Linux环境上一个应用服务会被定期异常kill掉,但是未直接找到是谁来操作的,后面绕了不少弯后找到了罪魁祸首(简单来说是其他程序bug导致操作错了进程号)。 这种场景若有更针对性的监测手段,会高效很多。基于该背景检索后尝试两种手段:audit审计 和 SystemTap。 本文对SystemTap进行实验。 2. 基本用法...
利用audit审计监测服务被谁kill了 1. 背景 Linux环境上一个应用服务会被定期异常kill掉,但是未直接找到是谁来操作的,后面绕了不少弯后找到了罪魁祸首(简单来说是其他程序bug导致操作错了进程号)。 这种场景若有更针对性的监测手段,会高效很多。基于该背景检索后尝试两种手段:audit审计 和 SystemTap。 本文先对audit进行实验。 2. 实验 网上(同质...
当一个目录中包含1万个空文件时,目录会占用多大的空间? 1. 背景 项目中使用空文件来标记模块数量,正常情况下模块不会太多。但由于误用和边界限制不完备,标记空文件生成了1000万个而导致这个目录很大,且主备间会rsync同步该目录,进而导致系统资源异常。 本文结合实验和Linux文件系统的结构代码进行对照验证,小结以加深理解。 2. 相关知识 Linux 文件系统会为每个文件分配两...
实验学习:MySQL单表超过2000万条记录,分析现象。 1. 背景 使用MySQL存数据时,业内有个传言是单表不要超过2000万条记录,若超过则查询效率会显著降低。 本博客对该情况进行实验记录,在实践中加深学习。 1. 理论 回翻MySQL索引实现的文章:48、B+树:MySQL数据库索引是如何实现的?,结合本文场景加深一下理解。 InnoDB索引说明 ...
记录利用strace排查问题的案例 1. 前言 当系统命令或者第三方工具执行有异常,尝试排查后无明确原因又无从下手时,不妨用strace跟踪下系统调用过程。或者最开始就尝试这个思路,问题可能一目了然。 此处记录几个strace排查问题的实际案例。 2. 排查案例 2.1. ssh时需要等待10s才跳出密码输入界面 现象描述: 有两台用作相同用途的服务器,...
[译] RFC 1180:朴素 TCP/IP 教程(1991) 学习笔记 1. 前言 RFC1180一篇很简洁易懂的TCP/IP入门教程,这篇翻译也很好。对网络栈和IP路由规则解释得很清晰,配合抓包对照理解更佳。 2. ARP ARP请求:收到192.168.1.100的广播包,谁是192.168.1.2(当IP不在ARP表时,广播ARP请求) arp应答:自己是192.168....
网络案例实践:设置机器的MTU和MSS。通过案例理解MTU和TCP MSS协商。 1. 概念 主要参考laixintao 老师的文章:有关 MTU 和 MSS 的一切 1.1. MTU MTU(Maximum Transmission Unit,最大传输单元) 指的是二层协议(也有说三层协议的,不同的厂商,甚至同一厂商的不同产品型号对MTU的定义也不尽相同)里面的最大传输单元,以太网...