wangdiqi Blog

没有尽头,何来终点。

docker学习

docker

“Let’s go” 概述 docker 容器 =cgroup+namespace+secomp+capability+selinux cgexec 是 cgroup 提供的一个工具,可以在启动时就将程序运行到某个 cgroup 中 nsenter 是一个 namespace 相关的工具,通过它可以进入某个进程所在的 namespace 原理基础 docker项目来说,它最...

go

go

“Let’s go” 常用库 “io” “ioutil” “bufio” “bytes” “strings” “context” 最佳实践 go编程中的准则: 第一条原则是,绝对不能由消费者关channel,因为向关闭的channel写数据会panic。正确的姿势是生产者写完所有数据后,关闭channel,消费者负责消费完channel里面的全部数据 为什么consume要...

测试框架

测试框架

LoadRunner Jmeter Locust Tsung 授权方式 商业收费 开源免费 开源免费 开源免费 开发语言 C/Java Java Python Erlang 测试脚本形式 C/Java GUI Python xml 并发机制 进程...

文件同步服务

文件同步

1.主动watch目录, 同步备份 使用rsync+inotify, sersync https://github.com/wsgzao/sersync 多线程 过滤队列 支持失败重试 常作为文件备份使用 配置从文件读取 不支持回调 2.httpserver + wget http文件服务器监听目录, wget递归下载 3.文件同步工具 r...

openresty基本知识

openresty

基本概要 nginx的11个阶段 1.post-read:(ngx_realip), nginx读取并解析完请求头(request headers)之后就立即开始运行。 支持nginx模块注册处理程序 2.server-rewrite:(ngx_rewrite配置在server配置块中时)。支持nginx模块注册处理程序 3.find-config:由nginx核心来完成当前请求与loca...

rabbitmq笔记

mq

exchange_declare exchange exchange_type passive:(1). true只检查存在与否, (2)false不存在就创建 durable auto_delete:没有queue绑定后删除 internal:是否可以被其它的exchange发布 arguments exchange_bind destination...

设计模式概览

设计模式

设计原则 找出应用中可能需要变化的地方,把他们独立出来,不要和那些不需要变化的代码混在一起 针对接口编程,而不是针对实现编程 对用组合,少用继承 为了交互对象之间的松耦合设计而努力 类应该对扩展开放,对修改关闭 要依赖抽象,不要依赖具体类 最少知识原则:只和你的密友谈话 好莱坞原则:别调用(打电话给)我们,我们会调用(打电话给)你 一个类应该只有一个引...

UML笔录

uml

依赖(Dependency) 虚线 student ---------> Computer class Computer{ public: static void start(){ cout<<"电脑正在启动"<<endl; } }; class Student{ public: //返回值构成依赖 Compu...

emacs备忘录

emacs

源码安装 cd /usr/src sudo mkdir emacs sudo chmod 777 emacs cd emacs wget https://ftp.gnu.org/gnu/emacs/emacs-26.3.tar.xz tar -xf emacs-VERSION.tar.xz sudo apt-get build-dep emacs25 emacs25-bin-common ...

多线程服务器的常用实现

多线程

高级的并发编程构件 TaskQueue Producer-Consumer Queue CountDownLatch等 建议 RAII手法封装mutex的创建、销毁、加锁、解锁这四个操作; 只用非递归的mutex; 不手动调用lock()和unlock()函数,交给栈上的Guard对象。始终在同一个函数同一个scope里对某个mutexs加锁和解。避免在foo()里加锁,然后...