Files
orbit/docs/reports/phase-11-two-node-compose.md

1.6 KiB
Raw Blame History

两节点 Compose 覆盖验证

验证日期:2026-09-22
验证范围:两个 Orbit 节点共享 MySQL、独立节点就绪、停止单节点后的对等节点可用、停止节点重新加入。
验证环境:Docker Desktop、MySQL 8.4、当前 orbit:dev 镜像、Go 1.27.1 构建产物。

验证入口

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 节点均启动并通过就绪探针:

ha-e2e=both_ready

停止 orbit-a 后,orbit-b 继续返回就绪:

ha-e2e=peer_ready_after_orbit_a_stop

重新拉起 orbit-a,它重新完成迁移/核验依赖并恢复就绪:

ha-e2e=orbit_a_rejoined

两节点分别绑定临时主机端口 18087 和 18088;正式入口由 Nginx upstream 或负载均衡器同时指向两个节点,并以 /health/ready 作为摘流条件。

验收边界

该回归证明节点无本地权威状态、停止/重加入顺序和 Compose 依赖正确;它没有证明数据库自动切换、跨故障域、负载均衡器故障、生产证书轮换、容量余量或 RPO/RTO。任务执行和租约接管仍需在目标拓扑中按真实 Worker、慢消费者和数据库故障场景留证。