feat(ref): 21 类静态主数据独立 PostgreSQL 参考库边界就位(ACM2-11 落地)
按 ACM2-11 定案调整(业务事务库 MySQL + 航班动态 Redis 不变): - 接口拆分:RefDataRepository 收为 gen-only(SCHD_GEN/流程 4 CAS,留守业务库); 新增 StaticRefRepository + RefUpsert 对齐 SOURCE 审计(N19)。 - 调用点:RequestCoordinator 应答落库、ReferenceService(21 类同步 TODO) 指向 StaticRefRepository;Decision.refUpserts 与 Pump 事务 2 注释同步 (静态写为弱事务,不入主泵事务 2)。 - Stub:StubRefData 仅 gen;新增 StubStaticRef(内存,保留 source)。 - 配置:datasources.reference / flyway.datasources.reference 占位 (PostgreSQL,enabled=false 不建连;驱动 org.postgresql 随阶段 6 实装引入, 版本由 platform BOM 约束 ~42.7);catalog 补 postgresql。 - 文档:README / docs/architecture.md §2/§6 / docs/design.md §2/§6/§9 数据边界 全部按"21 类 → PG 参考库、gen 留守 MySQL、Redis 动态不变"更新。 验证:37 测试全绿(./gradlew test,接口拆分后无破坏)。 表结构/迁移/ReferenceService 实装/应答接线属阶段 6(U05 批次后)。
This commit is contained in:
+18
-5
@@ -46,7 +46,7 @@ ErrorClass(两侧共用):
|
||||
schdPush / outboundIntents / refUpserts),不触碰 Redis/Kafka——副作用全部由泵边界执行。
|
||||
- Handler 实装:0/32(骨架),翻译属阶段 2/3,逐条对照 ACM2-4 行为基线与 KEEP/FIX 矩阵。
|
||||
|
||||
## 2. 数据模型(六辅助表)
|
||||
## 2. 数据模型(六辅助表 + 静态参考库)
|
||||
|
||||
`db/migration/V2.0.0__aux_tables.sql`(legacy 旧表不在本仓库声明,见 architecture.md §6):
|
||||
|
||||
@@ -54,7 +54,7 @@ ErrorClass(两侧共用):
|
||||
|---|---|---|
|
||||
| PROC_STATE | 消息处理伴生状态(不动 CMINMSGS 旧列) | `UK_PROC_IDENTITY(IDENTITY_KEY)` 唯一约束=I3 依据;`IDX_PROC_HEAD(STATE, CMINMSGS_ID)`=队头查询 |
|
||||
| MSG_EVENT | 统一投递 outbox | `EVENT_ID` 自增=全序;`IDX_EVT_HEAD(TARGET, STATE, EVENT_ID)`=每 target 队头 |
|
||||
| REF_DATA | 21 类参考数据 + SCHD_GEN | `VERSION` 列支撑流程 4 CAS;`SOURCE` 区分 ADMINAPI/AODB/PIPELINE |
|
||||
| REF_DATA | **SCHD_GEN(流程 4 gen 协议,留守业务库)**;原 21 类静态数据已拆分迁独立 PG 参考库(ACM2-11) | `VERSION` 列支撑流程 4 CAS(gen 行) |
|
||||
| REQ_TRACK | 15 类请求状态机 | REGISTERED/SENT/WAITING/DONE/EXPIRED |
|
||||
| PUMP_JOB | 泵作业队列 | kind:ARCHIVE/HISTORY_SWEEP/PROJECTION_REBUILD |
|
||||
| FLIGHT_STATE | 阶段 B 权威 | `replaceDay` 单事务删差集+写新代+版本提升 |
|
||||
@@ -63,6 +63,17 @@ ErrorClass(两侧共用):
|
||||
主键应含 FDAY;时间列 TIMESTAMP(秒级+会话时区)应 DATETIME(6)/显式 UTC,否则退避/毒丸
|
||||
判定存在系统性偏移风险。
|
||||
|
||||
**库边界(ACM2-11,2026-09-07 定案)**:
|
||||
- 业务事务库(MySQL `cdairport`):PROC_STATE / MSG_EVENT / REQ_TRACK / PUMP_JOB /
|
||||
FLIGHT_STATE + `REF_DATA` 的 **SCHD_GEN 行**(gen CAS 与 SUCCEEDED 同事务,快照协议依赖,不能随迁);
|
||||
- **21 类静态主数据 → 独立 PostgreSQL 参考库**(`datasources.reference`,`StaticRefRepository`,
|
||||
SOURCE=ADMINAPI/AODB/PIPELINE):写少读多、外部来源、弱事务;Redis 只作只读热点投影
|
||||
(legacy orms_stand 语义延续,阶段 6);
|
||||
- 航班动态权威 Redis(阶段 A flightInfo)**不变**。
|
||||
- 实现状态:Repository 已拆(`RefDataRepository`=gen-only / `StaticRefRepository`=21 类);
|
||||
reference datasource 已占位(enabled=false);表结构草案、迁移 SQL、ReferenceService 21 类
|
||||
同步与 codec 应答接线属阶段 6(U05 数据层批次后)。
|
||||
|
||||
## 3. 核心流程设计
|
||||
|
||||
### 3.1 流程 1:收报(`InboxService.accept`)
|
||||
@@ -173,9 +184,10 @@ CAS 冲突 → FAILED(INFRA)+退避(串行泵下不应发生→告警语义)
|
||||
| `identity.include-day-boundary` | false | 幂等键日边界(CONFIRM 前禁开) |
|
||||
| `consistency-check.on-startup` / `daily-sample-ratio` | true / 0.01 | 一致性哨兵(实装属 U25) |
|
||||
|
||||
基础设施键位口径(Micronaut 5.1,U03):`datasources.default.*`、
|
||||
`flyway.datasources.default.*`、`kafka.producers.default.*`、`eureka.client.*`;
|
||||
logback 独立于本文件,环境变量前缀 `MSGX_LOGSTASH_*`。
|
||||
基础设施键位口径(Micronaut 5.1,U03):`datasources.default.*`(业务 MySQL)、
|
||||
`datasources.reference.*`(21 类静态 PG,ACM2-11,enabled=false 待阶段 6)、
|
||||
`flyway.datasources.default.*` / `flyway.datasources.reference.*`、`kafka.producers.default.*`、
|
||||
`eureka.client.*`;logback 独立于本文件,环境变量前缀 `MSGX_LOGSTASH_*`。
|
||||
|
||||
## 7. 测试策略
|
||||
|
||||
@@ -215,3 +227,4 @@ logback 独立于本文件,环境变量前缀 `MSGX_LOGSTASH_*`。
|
||||
| U22–U24 | 载荷类型收敛、eventSeq 未接线、每报文全量读语义定案 | WP3 |
|
||||
| U25/U28/U30 | 一致性哨兵实装、README 安全节/入口、索引与杂项 | WP3/4 |
|
||||
| U27 | 专有材料(SIS md 703KB / XSD 版权头)治理决策 | WP4(ACL 核验先行) |
|
||||
| ACM2-11 | 21 类静态主数据独立 PG 参考库(datasources.reference):Repository 接口已拆(RefDataRepository=gen-only / StaticRefRepository),表结构/迁移/SOURCE 审计/ReferenceService 同步与应答接线未实装 | 阶段 6(U05 批次后);生产 Oracle 仅可能性,触发条件见 ACM2-11 |
|
||||
|
||||
Reference in New Issue
Block a user