43 lines
1.6 KiB
Markdown
43 lines
1.6 KiB
Markdown
# 两节点 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、慢消费者和数据库故障场景留证。
|