V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
zarte
V2EX  ›  Go 编程语言

求个解决方案

  •  
  •   zarte · 2019-11-01 17:26:07 +08:00 · 2871 次点击
    这是一个创建于 1850 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    15 条回复    2019-11-02 11:00:30 +08:00
    assad
        1
    assad  
       2019-11-01 17:27:16 +08:00
    上 PHP
    bagel
        2
    bagel  
       2019-11-01 17:40:24 +08:00
    你不想重启是因为不想有 downtime 吗?如果是那可以用这个库解决:

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

    楼主问的应该不是重启系统。
    killergun
        4
    killergun  
       2019-11-01 17:49:00 +08:00
    你说的是插件开发??
    Trim21
        5
    Trim21  
       2019-11-01 17:49:52 +08:00 via Android
    (搭车问有啥支持 docker 化的 web 站点热重启方案吗,机器少不太想上 k8s,docker 里面跑的也不是 go 程序
    assad
        6
    assad  
       2019-11-01 17:50:01 +08:00
    难道你们不需要重新编译么?
    zarte
        7
    zarte  
    OP
       2019-11-01 17:51:22 +08:00
    @bagel 我看看
    zarte
        8
    zarte  
    OP
       2019-11-01 17:52:42 +08:00
    @assad 分模块开发,一个模块监听一个端口这样,不知道可行不。算微服务?
    assad
        9
    assad  
       2019-11-01 17:53:38 +08:00
    @zarte 这样最好,就是有时候可能你的微服务粒度控制不好,可能太细
    NaVient
        10
    NaVient  
       2019-11-01 17:55:35 +08:00
    k8s
    gamexg
        11
    gamexg  
       2019-11-01 18:43:11 +08:00 via Android
    go 有优雅重启的实现,
    但是这种需求建议前面加负载均衡,由负载均衡做切换
    Leigg
        12
    Leigg  
       2019-11-01 18:46:50 +08:00 via Android
    你的意思就是业务不中断嘛,nginx 负载均衡了解一下
    1024G
        13
    1024G  
       2019-11-01 23:19:17 +08:00
    感觉像是 rolling upgrade,用 k8s 应该很方便。否则就是有 service discovery,新的服务注册上去,旧的 down
    37Y37
        14
    37Y37  
       2019-11-02 04:14:01 +08:00
    短链接,rolling update,docker 没 k8s,我们这么实现的
    https://ops-coffee.cn/s/xnBehfSlZ3J02xb0GFuGDw
    reus
        15
    reus  
       2019-11-02 11:00:30 +08:00 via Android
    reuseport 起新进程,结束旧进程,业务不中断。当然也要你的程序支持多实例同时跑
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   900 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:49 · PVG 04:49 · LAX 12:49 · JFK 15:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.