求个解决方案

2019-11-01 17:26:07 +08:00
 zarte

一个 web 站点,一段时间就会新增功能,需要更新程序然后重启才行。有啥方案可以直接添加不重启?
弄个入口站点自动获取新加的功能监听的端口然后转发吗?

2871 次点击
所在节点    Go 编程语言
15 条回复
assad
2019-11-01 17:27:16 +08:00
上 PHP
bagel
2019-11-01 17:40:24 +08:00
你不想重启是因为不想有 downtime 吗?如果是那可以用这个库解决:

https://github.com/fvbock/endless/
loading
2019-11-01 17:42:55 +08:00
golang 热重启 热更新

楼主问的应该不是重启系统。
killergun
2019-11-01 17:49:00 +08:00
你说的是插件开发??
Trim21
2019-11-01 17:49:52 +08:00
(搭车问有啥支持 docker 化的 web 站点热重启方案吗,机器少不太想上 k8s,docker 里面跑的也不是 go 程序
assad
2019-11-01 17:50:01 +08:00
难道你们不需要重新编译么?
zarte
2019-11-01 17:51:22 +08:00
@bagel 我看看
zarte
2019-11-01 17:52:42 +08:00
@assad 分模块开发,一个模块监听一个端口这样,不知道可行不。算微服务?
assad
2019-11-01 17:53:38 +08:00
@zarte 这样最好,就是有时候可能你的微服务粒度控制不好,可能太细
NaVient
2019-11-01 17:55:35 +08:00
k8s
gamexg
2019-11-01 18:43:11 +08:00
go 有优雅重启的实现,
但是这种需求建议前面加负载均衡,由负载均衡做切换
Leigg
2019-11-01 18:46:50 +08:00
你的意思就是业务不中断嘛,nginx 负载均衡了解一下
1024G
2019-11-01 23:19:17 +08:00
感觉像是 rolling upgrade,用 k8s 应该很方便。否则就是有 service discovery,新的服务注册上去,旧的 down
37Y37
2019-11-02 04:14:01 +08:00
短链接,rolling update,docker 没 k8s,我们这么实现的
https://ops-coffee.cn/s/xnBehfSlZ3J02xb0GFuGDw
reus
2019-11-02 11:00:30 +08:00
reuseport 起新进程,结束旧进程,业务不中断。当然也要你的程序支持多实例同时跑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/615346

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX