服务端代码经常需要升级,对于线上系统的升级常用的做法是,通过前端的负载均衡(如nginx)来保证升级时至少有一个服务可用,依次(灰度)升级. 而另一种更方便的方法是在应用上做热重启,直接更新源码.配置或升级应用而不停服务. 这个功能在重要业务上尤为重要,会影响服务可用性.用户体验. 原理 热重启的原理比较简单,但是涉及到一些系统调用以及父子进程之间文件句柄的传递等等细节比较多.处理过程分为以下几个步骤: 监听信号(USR2..) 收到信号时fork子进程(使用相同的启动命令),将服务监听的soc…
一.Linux服务器上11种网络连接状态: 图:TCP的状态机 通常情况下:一个正常的TCP连接,都会有三个阶段:1.TCP三次握手;2.数据传送;3.TCP四次挥手. 注:以下说明最好能结合”图:TCP的状态机”来理解. SYN: (同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立TCP连接时有效.表示一个新的TCP连接请求. ACK: (确认编号,Acknowledgement Number)是对TCP请求的确认标志,同时提示对端系统已经成功接收…
热重启 热重启(Zero Downtime),指新老进程无缝切换,在替换过程中可保持对 client 的服务. 原理 父进程监听重启信号 在收到重启信号后,父进程调用 fork ,同时传递 socket 描述符给子进程 子进程接收并监听父进程传递的 socket 描述符 在子进程启动成功之后,父进程停止接收新连接,同时等待旧连接处理完成(或超时) 父进程退出,热重启完成 实现 package main import ( "context" "errors" &quo…
目录 搭建Linux云服务器 购买与基本配置 链接linux服务器 目录结构 基本命令 软件安装 Linux 系统启动 启动过程 运行级别 Nginx详解 1.安装 方式一:yum安装 方式二:自定义目录安装 2.启动nginx 3.解决80端口被占用 4.彻底卸载和删除CentOS上的Nginx 目录介绍 配置 nginx.conf 配置文件语法 配置虚拟主机 开启gzip 动手发布一个自己的项目到服务器上 一.购买一个阿里云服务器 二.putty 登陆服务器 三.服务器上安装nginx 四.…
前言 大家都知道go语言的defer功能很强大,对于资源管理非常方便,但是如果没用好,也会有陷阱哦.Go 语言中延迟函数 defer 充当着 try...catch 的重任,使用起来也非常简便,然而在实际应用中,很多 gopher 并没有真正搞明白 defer.return.返回值.panic 之间的执行顺序,从而掉进坑中,今天我们就来揭开它的神秘面纱!话不多说了,来一起看看详细的介绍吧. 基本介绍 延时调用函数的语法如下: defer func_name(param-list) 当一个函数调用…
个人网站 https://iiter.cn 程序员导航站 开业啦,欢迎各位观众姥爷赏脸参观,如有意见或建议希望能够不吝赐教! 以前node中的express框架,每次修改代码之后,都需要重新npm start 才能看到改动的效果,非常麻烦,所以这里引入nodemon模块,实现了不用重启也能自动更新这样的好处 1.全局安装nodemon npm install -g nodemon 或者安装到本地 npm install nodemon --save 2.在项目目录下创建 nodemon.json…
1.重载 修改nginx配置文件之后,在不影响服务的前提下想加载最新的配置,就可以重载配置即可. 操作如下: 1)修改nginx配置文件 2)nginx -t     检查nginx文件语法是否有误 3)nginx -s reload    重载nginx配置 2.热部署(升级nginx版本) 比如我把版本冲nginx1.14-2升级到nginx1.16.1: 我之前nginx安装目录为:/data/geek/nginx目录 操作如下: 注意:千万不要make insatll 否则会把二进制执行…
prometheus启动命令添加参数 --web.enable-lifecycle 然后热重启:curl -XPOST http://localhost:9090/-/reload…
最近在调试4G模块,发现在开机启动时执行的AT指令会概率性的出现返回杂乱字符串的问题.想尽了各种办法还是行不通,在系统中使用minicom敲AT指令就不会有问题,开始怀疑是串口初始化的问题,修改了很多地方,也不起效果. 最后用journalctl查看了整个systemd启动过程,发现4G模块的usb加载和AT指令执行交杂在一块,也就说执行AT指令的时候,可能模块还没有稳定. 所以在service里面加入了ExecStartPre延时,问题解决. 另外,在调试4G模块热重启的时候,使用kill `…
https://mp.weixin.qq.com/s/UVZKFmv8p4ghm8ICdz85wQ Go 如何实现热重启 原创 zhijiezhang 腾讯技术工程 2020-09-09  …