Rumah  >  Artikel  >  pembangunan bahagian belakang  >  golang 怎么做热更新

golang 怎么做热更新

(*-*)浩
(*-*)浩asal
2019-12-31 13:27:295507semak imbas

golang 怎么做热更新

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,一旦发现有问题,可以及时的回滚

Atas ialah kandungan terperinci golang 怎么做热更新. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:golang 怎么调用c代码Artikel seterusnya:golang 指针怎么用