Golang Web服务升级部署方案

sheepbao · · 3473 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

1. 新旧版本同时运行,监听不同的端口,通过调整转发规则将新请求转发到新版本端口,等待一段时间后,停止旧版本进程。 优点:简单。 缺点:每次升级都要调整转发规则,重启转发机,以载入新配置。服务将短暂中断。 2. 借助第三方工具(monit、supervisord、upstart、daemontools等)实现daemon守护进程. 优点:无需调整转发规则 缺点:每个Web应用都要配合启动一个独立的守护进程,占用系统资源。服务将短暂中断。 3. 借助 https://github.com/stretchr/graceful 包实现优雅升级 优点:无需调整转发规则 缺点:服务将短暂中断。 4. 借助 https://github.com/codegangsta/gin 实现 live reloading 优点:自动rebuild,不中断接受请求 缺点:虽然不中断接受请求,但是新的进程启动之前,会迅速返回错误 5. 修改标准库实现Zero Downtime upgrades http://blog.nella.org/?p=879 优点:无中断 缺点:要改动go标准库

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3473 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传