当我使用 PHP 在生产服务器上开发和更新文件时,我只是即时复制文件,一切似乎都可以正常工作而不会中断服务器。但是如果我要更新 Go 服务器和应用程序上的代码并且需要终止服务器,将 src 文件复制到服务器,运行 go install,然后启动服务器,这将中断服务,如果我这样做这对于我的服务用户来说经常会看起来非常糟糕。将 Go 与 Go 的 http 服务器一起使用时,如何在不停机的情况下更新文件?
3 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
首先,不要按这个顺序做。先复制安装。然后你可以停止旧进程并运行新进程。
如果您运行应用程序的多个实例,那么您可以进行滚动更新,这样当您退回一台服务器时,其他服务器仍在服务。一种类似的方法是进行蓝绿部署,其优点是您的活动集群运行的代码始终是同构的(而在滚动部署期间,您将混合使用,直到它们全部滚动),并且您可以也做一个蓝绿部署,你通常只有一个应用程序实例(而滚动需要多个)。但是,它确实要求您在蓝绿切换期间拥有双倍的实例。
您需要考虑的一件事是任何进行中的请求——您可能希望确保进行中的请求继续发送到旧代码服务器,直到它们完成。
您还可以研究平台即服务解决方案,它可以为您自动化很多这些东西,还有更多。这样你就不会通过 ssh 进入生产服务器并手动复制文件。在考虑运维时,12 Factor App原则总是一个很好的起点。
- 3 回答
- 0 关注
- 139 浏览
添加回答
举报
0/150
提交
取消