发布中心要支持单个应用在指定服务器上部署多个版本
应用场景需求,希望应用App1能够在节点Node1上部署多个版本,如:App1A/App1B/App1C。
场景一
用户资源有限,希望在一台服务器上部署应用App1的测试版和生产版,端口不同。 可在发布节点里面添加两次节点Node1,命名发布集为:App1A/App1B,原来发布集统一使用应用名App1。 需要关闭自动发布,上传版本后,手工选择使用最新版本,然后在测试版App1B上点击发布。 待新版测试通过后,再电机App1A发布。
场景二
重要应用App1,仅有1台服务器,发布时需要重启,耗时1分钟左右,导致业务中断影响体验。 可在发布节点里面添加两次节点Node1,命名发布集为:App1A/App1B,原来发布集统一使用应用名App1。 配置两个发布的顺序和延迟时间(60秒),自动发布时,依次部署,间隔60秒。 前端nginx使用主备机制,确保发布过程中也有可用节点。
说到这个,感觉是不是可以利用XProxy 或 YARP 做一个能反代http/tcp的网关应用,用它来做常驻,支持配置热重载,同一个节点上的网络服务通过它来转发和负载均衡。用nginx可以也挺方便,但是还需要手动改些配置,无法做法完全自动化。或者专门为nginx写一个助理类,去匹配并修改配置然后reload。
你所需要的功能,就是星尘网关 StarGateway,一直放在源码目录里面的反向代理,还没有实现配置集成。 它的设计方向,是从注册中心读取应用在线信息,然后实时调整反向代理。
功能已实现