feat: add two-node compose deployment
This commit is contained in:
42
docs/reports/phase-11-two-node-compose.md
Normal file
42
docs/reports/phase-11-two-node-compose.md
Normal 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、慢消费者和数据库故障场景留证。
|
||||
Reference in New Issue
Block a user