Test #1
+29
-1
@@ -264,6 +264,35 @@ restart: unless-stopped
|
||||
|
||||
## 9. 无停机发布目标
|
||||
|
||||
### 9.0 当前单机蓝绿实现
|
||||
|
||||
生产业务应用已采用逐服务蓝绿,不同时复制整套应用。数据库、Redis、Nacos 和 RocketMQ
|
||||
不参与应用槽位切换,继续按各自高可用方案运行。
|
||||
|
||||
- 后端槽位命名为 `firstleg-production-<service>-blue/green`,绿色槽使用基础宿主机端口加
|
||||
`10000`;活动状态保存在 `/data/firstleg/deploy/blue-green-state/`。
|
||||
- 候选 Web 槽先健康检查,再接入 `firstleg-production-routing` 网络;失败只删除候选,
|
||||
不停止活动槽。
|
||||
- 带 `@Scheduled` 或 MQ Consumer 的服务,Web 槽固定关闭后台任务;后台任务运行在不注册
|
||||
Nacos、不暴露端口的单例 `*-worker` 容器。Worker 顺序切换,避免新旧任务双跑。
|
||||
- 国内、海外 Gateway 分别在 `9000/19000`、`9300/19300` 之间切换,宿主机 Nginx
|
||||
`nginx -t` 成功后才 reload;失败恢复原配置。
|
||||
- Admin、Client 分别在 `9001/19001`、`9002/19002` 之间切换,使用稳定的
|
||||
`gateway-active`、`gateway-overseas-active` 路由别名。
|
||||
- 所有 Java Web 槽使用优雅停机,默认最多等待 45 秒完成在途请求。
|
||||
|
||||
首次迁移顺序固定为:
|
||||
|
||||
```text
|
||||
Admin -> Client
|
||||
-> gateway -> gateway-overseas
|
||||
-> auth -> iam -> order -> warehouse -> firstleg -> finance -> file -> print -> integration
|
||||
-> audit -> event-bridge(CN/OVERSEAS) -> lastleg -> warehouse-overseas
|
||||
```
|
||||
|
||||
Gateway 切换前会检查两个前端是否已经使用稳定别名;不满足时发布失败并保留旧 Gateway。
|
||||
后续发布只双开当前目标服务,不要求整套业务同时占用双倍内存。
|
||||
|
||||
### 9.1 业务服务滚动发布
|
||||
|
||||
目标流程:
|
||||
@@ -384,4 +413,3 @@ Gateway 自身不能只依靠 Nacos。至少部署两个实例,并由 Nginx、
|
||||
- 数据库发布顺序和 Expand/Contract:`数据库版本迁移与Jenkins自动发布方案.md`。
|
||||
- 阿里云资源、高可用、压测和整体上线:`阿里云生产环境选型压测与上线手册.md`。
|
||||
- 测试环境持续部署:`测试环境Jenkins部署指南.md`。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user