docs(acm2): 对齐设计与参考表——C-1/Q9 信箱清理口径、REQ_TRACK 开放键两类各一条、FLOP 现行基线 7 类、EROR 迁移、C-7 引用、PROTOCOL 归位、参考表去 Q11/Q23 误引并补 OPS-2 缺口

This commit is contained in:
windyboy
2026-09-20 10:26:12 +08:00
parent 050eadc1a2
commit c8acb74432
2 changed files with 44 additions and 42 deletions
+10 -9
View File
@@ -17,7 +17,7 @@
| `msgx.pipeline.max-attempts` | `5` | 次 | 假定 | 处理与投递共用;达到即转 `DEAD(EXHAUSTED)` |
| `msgx.pipeline.backoff-ms` | `[1000,2000,4000,8000]` | ms / 档 | 假定 | **档位数必须 = `max-attempts 1`**,启动自检拦截错位 |
| `msgx.pipeline.backoff-cap-ms` | `60000` | ms | 假定 | 单档封顶;默认表内无档触及 |
| `msgx.pipeline.max-commit-delay` | `5m` | Duration | **假定(无依据)** | **待退役**:水位空洞老化阈值,随收报改谓词扫描(`G-SCAN-PREDICATE`)删除;依据 `C-2` 已作废 |
| `msgx.pipeline.max-commit-delay` | `5m` | Duration | **假定(无依据)** | **待退役**:水位空洞老化阈值,随收报改谓词扫描(`G-SCAN-PREDICATE`)删除 |
| `msgx.pipeline.overdue-backfill` | `30d` | Duration | 契约(`R ≤ R_keep` | 即 `R`:进入强补写窗口、**取消退避**的阈值;**不是兜底保证** |
| `msgx.pipeline.backfill-batch` | `100` | 条 | 假定 | 回填扫描单批条数 |
| `msgx.pipeline.backfill-scan-period` | `30s`(代码常量,无配置键) | Duration | 现役 | 回填扫描作业周期 |
@@ -44,17 +44,18 @@
| `msgx.identity.include-day-boundary` | `false` | 安全默认 | 身份是否加日期边界;影响去重语义,不能当调优项切换(`Q10` |
| `msgx.health.backlog-cache-ttl-ms` | `30000` | 假定 | 积压快照缓存窗口;`0` = 不缓存;`/health``/metrics` 共用同一快照 |
| `msgx.history.history-store-enabled` | `false` | 安全默认 | 历史存储门控;关闭时历史清理删 0 条 |
| `msgx.history.cancelled-hours` | `1` | 假定 | 历史清理的取消态判据窗口 |
| `msgx.history.terminal-hours` | `48` | 假定 | 历史清理的终态判据窗口 |
| `msgx.history.deleted-hours` | `48` | 假定 | 历史清理的已删除判据窗口 |
| `msgx.history.idle-hours` | `168` | 假定 | 历史清理的静默期判据 |
| `msgx.history.cancelled-hours` | `1` | 契约(`US-14` AC2) | 取消态判据窗口:CNCL 早于当前超过 1 小时 |
| `msgx.history.terminal-hours` | `48` | **与 `US-14` AC2 冲突** | 终态判据窗口;AC2 判史条件(计划超 3 天、离港/到港成套条件)不含 48h 终态窗口,取值须按 AC2 重评 |
| `msgx.history.deleted-hours` | `48` | 实现 | 已删除判据窗口`US-14` AC2 之外的兜底判据 |
| `msgx.history.idle-hours` | `168` | 实现 | AC2 五条件之外的静默期兜底;与 AC2 的关系须在实现定案时说明 |
| `msgx.history.sweep-time` | `03:30`(代码常量,无配置键) | 契约(`US-14` AC1) | 历史清理作业每日执行时刻 |
| `msgx.history.snap-log-retention-days` | `90` | 假定 | `SCHD_SNAP_LOG` 保留天数 |
### 1.3 信箱与外部依赖(成组登记)
| 参数组 | 默认 | 依据 | 说明 |
|---|---|---|---|
| `mailbox.processed-value` | `PROCESSED` | 契约(`C-5``Q8`) | 处理标记写入值;仅限库方认可值集 |
| `mailbox.processed-value` | `PROCESSED` | 契约(`Q8`) | 处理标记写入值;仅限库方认可值集;写入值形态(完成时刻 vs 常量)与 spec「处理标记=写完成时刻」存在张力,须核对旧系统真实写入内容后定案 |
| `mailbox.shared-mysql.enabled` | `false` | 安全默认 | 真实信箱接线门控 |
| `mailbox.shared-mysql.connect-timeout-ms` | `3000` | 假定 | 有界外部调用;Connector/J 默认无限等待,必须显式;同组 `socket-timeout-ms=30000` |
| `mailbox.shared-mysql.pool-connection-timeout-ms` | `5000` | 假定 | 池级连接超时;同组 `pool-validation-timeout-ms=3000` |
@@ -82,9 +83,9 @@
| `msgx.pipeline.job.ticks.total` | 作业 tick 完成次数 | 不增长 → 作业停摆 |
| `msgx.pipeline.job.failures.total` | 作业 tick 抛错次数 | 增长 → 扫描/历史作业异常 |
| `msgx.pipeline.job.last_sweep_selected` | 上一轮回填扫描选中的待办条数(扫描积压) | 持续顶到批次上限 → 扫描吃不消 |
| `msgx.pipeline.codec.srvt_seen.total` | 入站记录中出现 `SRVT` 段的条数(`G-SRVT-VIPF`) | > 0 → 真实流量确有该段,按真实报文定案 `Q11` |
| `msgx.pipeline.codec.srvt_seen.total` | 入站记录中出现 `SRVT` 段的条数(`G-SRVT-VIPF`) | > 0 → 真实流量确有该段,按真实报文闭合 `G-SRVT-VIPF` |
| `msgx.pipeline.codec.vipf_seen.total` | 入站记录中出现 `VIPF` 段的条数(`G-SRVT-VIPF` | 同上 |
| `msgx.pipeline.processing.ignored.total` | 命中 `US-04` 忽略清单的报文条数 | 增长是正常流量;归零反而需确认配置是否丢失 |
| `msgx.pipeline.processing.ignored.total` | 命中 IgnoreRules 基线忽略清单(`LDM-*`/`REGN-*`/`RSTA-*`/`EROR-*`,见 `processing/IgnoreRules.kt`的报文条数 | 增长是现行流量;但清单与目标设计冲突——`REGN`/`RSTA` 按设计必须分派 `US-13``EROR``US-09` AC3 必须定位请求标失败;该清单无 requirements 依据,处置待闭合 |
取数规则:统一走 `BacklogSnapshotProvider``PARAM:msgx.health.backlog-cache-ttl-ms`),`/health``/metrics` 共用同一快照——`backlog()``PROC_STATE` 的全表聚合,不能被高频抓取打穿;**无法取数上报 `NaN`,无可比记录的年龄/滞后类仪表上报 `-1`,都不伪造 0**。日志出口故障不得阻塞业务线程。进程内计数类指标不经快照,重启归零。
@@ -100,7 +101,7 @@
| 回填与投递 | `processing/BackfillService.kt``delivery/Dispatcher.kt``infra/kafka/KafkaDeliveryPort.kt` |
| 维护作业 | `jobs/JobRunner.kt``jobs/HistorySweepJob.kt``jobs/EventCleanupJob.kt``infra/persistence/SnapshotLogPurge.kt` |
| 持久化与恢复 | `infra/persistence/`(含 `jdbc/JdbcPgRepositories.kt``jdbc/JdbcCminmsgInboxRepository.kt`)、`infra/retry/``ProcFailure` / `ReplayService` / `FailureScheduler` |
| 启停与配置 | `PipelineLifecycle.kt``config/PipelineProps.kt``config/HistoryProps.kt``config/OperationDayProps.kt`(含运营日时区启动自检)、`config/MailboxProps.kt``config/KafkaD3Check.kt`当前 Kafka 生产配置自检) |
| 启停与配置 | `PipelineLifecycle.kt``config/PipelineProps.kt``config/HistoryProps.kt``config/OperationDayProps.kt`(含运营日时区启动自检)、`config/MailboxProps.kt``config/KafkaD3Check.kt`Kafka 生产配置自检,语义见 `D2`;类名沿用历史命名 |
| 指标与健康 | `infra/metrics/PipelineMetrics.kt``infra/metrics/JobActivity.kt``infra/health/BacklogSnapshotProvider.kt``infra/health/JobRunnerHealthIndicator.kt` |
| 迁移 | `src/main/resources/db/migration/`(单基线 `V1__flight_state_baseline.sql``oracle11g/` 为占位) |