Files
orbit/docs/reports/phase-7-acceptance-20260921.md

4.0 KiB
Raw Permalink Blame History

P7 四项闭环验收记录

日期:2026-09-21。本文把流程恢复、运行观测、故障/容量和 SDK 接入放在同一次当前提交验收中。所有结果来自本地 Docker、一次性 MySQL 8.4 和 Go 1.27.1;它们证明代码链路可复现,不替代目标生产拓扑的容量、复制切换、RPO/RTO 和发布审批。

1. 真实流程恢复闭环

执行:

make integration

关键结果:

  • TestIntegrationWorkflowRecovery 通过 UNKNOWN 执行核查、步骤结论、继续、任务重试、POLL PENDING、SIGNAL/TIMER 等待恢复、旧证据保护、预算和截止时间保护、审计失败回滚及权限/修订冲突。
  • TestIntegrationWorkflowRuntimeProcess 通过控制器全停、两个新进程接管、人工恢复后继续、POLL 同轮恢复和等待代次重建。
  • TestIntegrationWorkflowInstancesSDK 通过公共 HTTP 与独立 SDK 的六类恢复命令、流程控制、信号、审计和真实 Worker 执行。
  • WebSocket 结果交付、ACK 丢失、慢消费者、自然租约重投和跨节点接管均通过;完整 MySQL 集成退出 0。

控制台资源也使用同一公共接口:/console/、/console/app.js、/console/styles.css 返回 200,NEEDS_REVIEW 恢复入口要求当前修订、证据引用、原因、显式确认和幂等键。

2. 指标与告警

执行:

go test ./internal/observability ./cmd/orbit -count=1
docker run --rm --entrypoint /bin/promtool \
  -v "$PWD:/work:ro" prom/prometheus:v3.5.0 \
  check rules /work/deploy/monitoring/orbit.rules.yml
docker run --rm --entrypoint /bin/promtool \
  -v "$PWD:/work:ro" prom/prometheus:v3.5.0 \
  test rules /work/deploy/monitoring/orbit.rules.test.yml

结果:指标单元与真实进程采样通过;Prometheus 规则加载 8 条成功,触发、启动宽限、健康不报警、错误恢复和截断恢复测试通过。指标保持独立监听、固定基数、无业务 ID 标签;告警只触发调查,不自动改写任务或流程状态。

3. 故障、备份和容量样本

场景 命令 当前结果
MySQL 短暂不可用 scripts/test-db-recovery.sh readiness 在故障时 503,恢复后 200,恢复后任务可受理
逻辑备份恢复 scripts/test-backup-restore.sh 源库/恢复库核心计数一致,schema 28、外键 0、固定观测索引 6
GTID 复制与手工提升 scripts/test-mysql-replication.sh 复制同步、源库停止、副本手工提升和原幂等键重放通过;自动切换仍未宣称完成
集中定时积压 ORBIT_BACKLOG_RUN_TIMEOUT=20s scripts/test-schedule-backlog.sh 256 个 occurrence 全部持久化,32 个计划均暂停确认,外键 0;保留有界曲线和指标采样,工具的预期 tool_exit=1 表示到达负向截止样本

长时积压样本继续使用 180 秒默认窗口;样本只用于比较积压清空、CPU/RSS、MySQL 资源和连接池曲线,不能直接外推生产吞吐或百万企业容量。

4. SDK 与业务接入

执行:

make sdk-check
make protocol-check
make docs-check
make release-local-check

结果:SDK 独立 module、GOWORK=off、竞态测试、vet、全包构建、协议版本检查和 149 个 Markdown 本地链接均通过;公共 SDK 的流程恢复、事件消费、Outbox/Inbox、提交回执丢失和 WebSocket 重连已有真实服务示例。新增生产接入闭环,明确 Outbox、HTTP 受理、WebSocket 通知、Inbox 去重、错误分类和上线清单。

5. 仍需目标环境验收

  • 生产硬件和混合负载下的 p50/p95/p99、磁盘、锁等待、复制延迟和容量余量。
  • 自动故障切换、目标拓扑 RPO/RTO、备份介质和恢复工单。
  • 生产监控通知、值班升级、凭据托管、日志脱敏和发布审批。
  • 正式标签之间的完整 SDK/服务端双向兼容矩阵。

这些项目继续保留在首版交付清单中,不能用本地回归结果替代。