55 lines
3.1 KiB
Markdown
55 lines
3.1 KiB
Markdown
# msgexchange-v2(新一代消息交换服务)
|
||
|
||
依据 **ACMA-8 v4 综合架构**(单写者严格 FIFO 管道 + 两阶段权威)与 **ACMA-6 技术选型**
|
||
(Micronaut 5.1 + Kotlin 2.3)搭建的新一代消息交换服务工程。本仓库独立于 legacy
|
||
`msgexchange-api`(Java 8 / Spring Boot 1.5 / Maven)——过渡期两套系统并存(影子对拍→
|
||
切流→旧仓库冻结),legacy 维护不受本仓库影响。
|
||
|
||
> **JDK 口径实测修正**:Micronaut 5.1 系构件(如 micronaut-http-server-netty:5.1.10)
|
||
> 要求 JVM 25+,计划原定 JDK 21 不可行;工程已按 **JDK 25** 配置(ACMA-9 记录)。
|
||
|
||
## 包结构 → ACMA-8 架构映射
|
||
|
||
| 包 | 职责 | 对应 ACMA-8 |
|
||
|---|---|---|
|
||
| `ingress/` | Ingress & Inbox:接收事务(事务1),不解析报文 | 流程 1,I3 |
|
||
| `processing/` | Processing 主泵:严格 FIFO 领取、identity 绑定、纯函数决策、事务2 | 流程 2/4,I1/I2/I5 |
|
||
| `delivery/` | Delivery & Projection:每 target 严格 FIFO 投递、schd 聚合 | 流程 3 |
|
||
| `reference/` | Reference & Query:21 类同步 + 15 类请求状态机 | 流程 6 |
|
||
| `jobs/` | 泵作业:ARCHIVE / HISTORY_SWEEP / PROJECTION_REBUILD | 流程 4/5/7,I4 |
|
||
| `codec/` | XML codec(阶段 1 先 vendor 复用 legacy POJO,见 ACMA-6 选型) | 决策 4 前置 |
|
||
| `domain/` | 领域模型:Decision、事件、状态机枚举、Phase 开关 | I1–I5 |
|
||
| `infra/` | 仓储接口、Redis Lua 装载、配置 | 数据模型节 |
|
||
|
||
## 资源
|
||
|
||
- `db/migration/V2.0.0__aux_tables.sql`:六表 DDL(PROC_STATE / MSG_EVENT / REF_DATA /
|
||
REQ_TRACK / PUMP_JOB / FLIGHT_STATE),与 ACMA-8 v4 数据模型节逐字一致;影子实例在
|
||
独立 schema 执行同一脚本。
|
||
- `lua/snapshot_replace.lua`:同一 hash 原子“覆盖新代 + 按代差删”(流程 4,I4/I5)。
|
||
- `lua/batch_delete.lua`:3:30 清场批量删除(仅 ES 写成功集,I4)。
|
||
- `application.yml`:口令全部环境变量外置(零入库);`msgx.phase` 为阶段 A/B 总开关;
|
||
pipeline 参数 = ACMA-8 参数表初值。
|
||
|
||
## 未完成(按计划属于后续阶段,不是本脚手架遗漏)
|
||
|
||
1. **Handler 业务(3+29)**:`processing/HandlerRegistry` 仅注册骨架,翻译属阶段 2/3。
|
||
2. **codec 实装**:vendor 复用 legacy `entity/msg` POJO + Jackson XML(ACMA-6 选型),
|
||
阶段 1 后续项。
|
||
3. **依赖版本锁定**:`gradle/libs.versions.toml` 中版本为计划口径,需阶段 0
|
||
「Micronaut×现网 Eureka 互操作冒烟 + logstash + ES REST」通过后固化。
|
||
4. **仓储实装**:`infra/persistence/Repositories.kt` 目前是接口(Micronaut Data JDBC
|
||
实装属阶段 1 后续),主泵/调度循环以接口驱动,纯逻辑已抽离可单测。
|
||
|
||
## 构建
|
||
|
||
```bash
|
||
gradle build # 需网络拉取依赖;内网环境见 gradle.properties 注释
|
||
gradle test # 纯逻辑单测(identity / schd 聚合)
|
||
```
|
||
|
||
## 关联
|
||
|
||
Plane `airport_chengdu_msgexchange_api`:ACMA-9(本阶段跟踪)、ACMA-8 v4(架构)、
|
||
ACMA-6(技术选型)、ACMA-3(总计划)、ACMA-4(行为对拍基线)。
|