golang--零下线时间式重启

前端之家收集整理的这篇文章主要介绍了golang--零下线时间式重启前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在Hacker News看到用Go达到Zero-downtime restarts,意思大概为零下线时间式重启,很早就知道Nginx可以轻松做到平滑重启,一直都想用go来实现这样的功能。看了一下它的代码实现,所以有了这篇博文。

项目名字叫goagain,地址在:https://github.com/rcrowley/goagain。该项目是一个类库,也就是package,在go开发的程序中添加这个package就可以轻松地重启程序。

goagain会监控2个系统信号,一个为SIGTERM,接收到这个信号,程序就停止运行。另一个信号为SIGUSR2,接收到这个信号的行为是,当前进程,也就是父进程会新建一个子进程,然后把父进程的pid保存到一个名为GOAGAIN_PPID的环境变量;子进程启动的时候会检索GOAGAIN_PPID这个变量,来判断程序是否要重启,通过这个变量来关闭父进程,来达到平滑重启的效果

goagain项目里面有一个例子,按照这个例子,我们就可以按照需求打造自己的程序。我个人测试了一下例子,能够运行,效果不错。下面是截图效果

转贴请注明来自:格通

原文链接:https://www.f2er.com/go/189955.html

猜你在找的Go相关文章