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

70 lines
4.0 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.
# P7 四项闭环验收记录
日期:2026-09-21。本文把流程恢复、运行观测、故障/容量和 SDK 接入放在同一次当前提交验收中。所有结果来自本地 Docker、一次性 MySQL 8.4 和 Go 1.27.1;它们证明代码链路可复现,不替代目标生产拓扑的容量、复制切换、RPO/RTO 和发布审批。
## 1. 真实流程恢复闭环
执行:
```sh
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. 指标与告警
执行:
```sh
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 与业务接入
执行:
```sh
make sdk-check
make protocol-check
make docs-check
make release-local-check
```
结果:SDK 独立 module、`GOWORK=off`、竞态测试、vet、全包构建、协议版本检查和 149 个 Markdown 本地链接均通过;公共 SDK 的流程恢复、事件消费、Outbox/Inbox、提交回执丢失和 WebSocket 重连已有真实服务示例。新增[生产接入闭环](../sdk/production-integration.md),明确 Outbox、HTTP 受理、WebSocket 通知、Inbox 去重、错误分类和上线清单。
## 5. 仍需目标环境验收
- 生产硬件和混合负载下的 p50/p95/p99、磁盘、锁等待、复制延迟和容量余量。
- 自动故障切换、目标拓扑 RPO/RTO、备份介质和恢复工单。
- 生产监控通知、值班升级、凭据托管、日志脱敏和发布审批。
- 正式标签之间的完整 SDK/服务端双向兼容矩阵。
这些项目继续保留在[首版交付清单](../release-checklist.md)中,不能用本地回归结果替代。