附录 C —— 排障决策树
先保留现场,再按 identity → lifecycle → membership → route → delta → repair → observer 的顺序缩小范围。重启会改变现场状态,不适合作为第一条诊断动作。
入口决策
| 症状 | 先看 | 下一条假设 |
|---|---|---|
| 应用活着但请求失败 | state、isReady、lastErrorMessage |
Runtime 未 RUNNING 或启动配置失败 |
| peer 完全不可见 | cluster/service、membership view、端口 | 通信域/seed/网络不一致 |
| 只有某集合不同步 | locator、schema、collection diagnostics | locator 或 fingerprint 不匹配 |
| 在线更新偶尔丢失 | message dropped reason、sync trace | delta 路径丢失,等待/触发 repair |
| repair 后仍不同 | digest、replay window、snapshot result | 来源选择、倒退保护或 handler 失败 |
| Lease 拒绝 | mode、membership stability、quorum、token | 成员不稳定、quorum 不足或旧 token |
| 订阅者缺事件 | overflow/callback timeout | 观察者落后,不一定是集合状态缺失 |
| 远端消息被拒绝 | admission/auth/decrypt/replay/rate limit | 对应安全门配置或攻击行为 |
| Federation 不健康 | target identity、relay status、binding status | remote locator 缺失或 relay 不可达 |
快速检查顺序
- 记录 revision、节点 identity、时间窗口和具体 locator。
- 读取 diagnostics 快照;在保存证据前不清空错误或重启。
- 检查低基数 metrics 的 operation/outcome/reason。
- 用 trace 关联一条具体操作;traceId 进入日志或 trace,不进入 metric tag。
- 复核安全审计,但不得输出 token、key 或敏感 payload。
- 对照 peer capability/schema 后再决定 replay、snapshot 或配置修正。
- 写明恢复后哪些业务成功无法撤回、哪些外部副作用需要补偿。
常见假绿
Tests run: 0。- 测试被 skipped,但汇总只看退出码。
- compile-only 被写成行为验证。
- in-process fake 被写成真实网络。
- 本地
get成功被写成远端可见。 - 收敛被写成分区期间没有双成功。
- JMH smoke 数字被写成生产 SLA。
最小证据记录
revision:
environment/topology:
claim:
command/probe:
observed result:
does not prove:
next action / owner: