golang 怎么做热更新


本文摘自php中文网,作者(*-*)浩,侵删。

Golang标准库的http部分提供了强大的web应用支持,再加上negroni等中间件框架的支持,可以开发高性能的web应用(如提供Restful的api服务等)。 (推荐学习:go)

通常这些web应用部署在多台Linux操作系统的应用服务器上,并用Nginx等做为反向代理,实现高可用的集群服务。当应用版本升级时,如何实现比较优雅的多态服务器的版本更新呢?

问题分析

Web应用的更新,我觉得可能需要考虑几个方面的问题:

编译好的应用二进制文件、配置文件上传到服务器上;

应用服务器能感知到有新的版本上传;

在没有停止服务的情况下,热更新版本;

最好所有的更新过程,可以脚本化,减少手动操作的错误。

方案

其实,go社区有一些开源项目,可以自动检测web应用的改变,并实现自动的更新,但这些应用都是检测源码、资源文件的更新,启动build过程,实现自动的编译和重启。

例如 gin和 fresh,这些应用适合应用于开发和测试阶段,可能并不适合应用的部署和更新,但提供了良好的思路。

部署环境的目录及版本的上传

我将发布的应用二进制文件和配置文件,存放在某个目录下,如 ~/app/release,每个版本都保留在这个目录中,例如app.1.0、app.1.1、app.2.0,一旦发现有问题,可以及时的回滚

以上就是golang 怎么做热更新的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

go strings

聊聊dubbo-go-proxy的apifilter

golang 异或字符串 xor

golang 之 struct能不能比较

如何升级基础架构

golang test传参数实践

go gob

手撸golang 仿spring ioc/aop 之11 增强2

golang中创建错误的方法

vim--golang开发配置

更多相关阅读请进入《golang》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...