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

43 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 两节点 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、慢消费者和数据库故障场景留证。