feat: add two-node compose deployment

This commit is contained in:
2026-09-22 02:43:51 +08:00
parent 81f97544db
commit c33c12c5e9
5 changed files with 138 additions and 1 deletions

View File

@@ -0,0 +1,42 @@
# 两节点 Compose 覆盖验证
验证日期:2026-09-22
验证范围:两个 Orbit 节点共享 MySQL、独立节点就绪、停止单节点后的对等节点可用、停止节点重新加入。
验证环境:Docker Desktop、MySQL 8.4、当前 `orbit:dev` 镜像、Go 1.27.1 构建产物。
## 验证入口
```sh
docker compose \
-f deploy/docker-compose.yml \
-f deploy/docker-compose.ha.yml \
up -d mysql verify orbit-a orbit-b
```
本机已有大量 Docker 自定义网络,本次只在临时测试覆盖文件中使用默认 `bridge` 网络和 MySQL 链接,以避开本机地址池耗尽;正式的 `deploy/docker-compose.ha.yml` 保持 Compose 项目隔离网络。
## 结果
一次性 MySQL 空库完成健康检查、迁移、权限收紧和 schema 核验后,两个 Orbit 节点均启动并通过就绪探针:
```text
ha-e2e=both_ready
```
停止 `orbit-a` 后,`orbit-b` 继续返回就绪:
```text
ha-e2e=peer_ready_after_orbit_a_stop
```
重新拉起 `orbit-a`,它重新完成迁移/核验依赖并恢复就绪:
```text
ha-e2e=orbit_a_rejoined
```
两节点分别绑定临时主机端口 `18087` 和 `18088`;正式入口由 Nginx upstream 或负载均衡器同时指向两个节点,并以 `/health/ready` 作为摘流条件。
## 验收边界
该回归证明节点无本地权威状态、停止/重加入顺序和 Compose 依赖正确;它没有证明数据库自动切换、跨故障域、负载均衡器故障、生产证书轮换、容量余量或 RPO/RTO。任务执行和租约接管仍需在目标拓扑中按真实 Worker、慢消费者和数据库故障场景留证。