Capture a clear baseline across requirements, stack choices, and high-level architecture so review and implementation can align on scope and quality gates.
5.4 KiB
5.4 KiB
开源机场运营数据库(AODB)初步高层设计
1. 目标
本设计给出 AODB 的初步高层方案,重点回答三件事:
- 系统由哪些核心模块组成。
- 关键业务数据如何流转。
- 首期上线应覆盖哪些能力。
适用范围:年旅客吞吐量 500 万至 3000 万机场。
2. 设计原则
- 单一事实源(SSOT):航班与资源状态统一归口到 AODB。
- 事件驱动:状态变化通过事件广播,减少系统耦合。
- 标准优先:优先兼容 AIDX、SSIM、AFTN/SITA。
- 渐进建设:先实现核心闭环,再扩展高级能力。
3. 总体架构
3.1 架构分层
| 层级 | 主要能力 | 代表组件 |
|---|---|---|
| 接入层 | 外部系统接入、协议解析、统一 API | API Gateway、协议适配器、SSIM 导入器 |
| 业务层 | 航班管理、资源分配、里程碑管理、告警处理 | Flight Service、Resource Service、Milestone Service、Alert Service |
| 事件与计算层 | 事件总线、规则计算、基础预测 | Kafka、规则引擎、轻量预测服务 |
| 数据层 | 事务存储、时序存储、缓存、检索 | PostgreSQL、TimescaleDB、Redis、OpenSearch |
| 平台层 | 身份认证、部署运行、监控告警 | Keycloak、Kubernetes、Prometheus/Grafana |
3.2 核心模块职责
- Flight Service:维护航班计划、动态状态和历史记录。
- Resource Service:进行机位/登机口等资源分配与冲突检查。
- Milestone Service:维护 A-CDM 关键里程碑时间点。
- Alert Service:统一处理延误、冲突等运营告警。
- ACISP 接口层:向航司、地服、AOC 提供查询与订阅能力。
3.3 核心实体标识约定(最小集)
- Flight:
carrier + flight_number + op_date + leg_no作为业务唯一标识。 - Milestone:
flight_id + milestone_type + source + event_time作为幂等写入键。 - ResourceAssignment:
resource_type + resource_id + time_window + flight_id作为分配唯一键。
4. 关键数据流(初版)
4.1 航班计划导入流
- 外部系统提交 SSIM/AIDX 数据。
- 接入层完成解析与标准化。
- Flight Service 写入 AODB 主库。
- 业务层发布航班状态事件给订阅方。
4.2 运行态更新流
- 空管/航司发送运行动态(如 ALDT、TOBT)。
- Milestone Service 更新关键节点。
- Resource Service 根据最新状态重算资源占用。
- Alert Service 在冲突或延误时触发通知。
4.3 事件一致性与异常处理约束
- 所有写入事件必须携带
idempotency_key,重复事件只更新一次。 - 同一
flight_id的事件按event_time + version排序处理,过旧版本进入旁路审计。 - 解析失败或校验失败消息进入 DLQ,并生成人工复核任务。
- 外部源异常抖动时启用降级策略:保留最近可信状态并标记数据可信度。
5. 首期上线范围(MVP)
首期建议只覆盖以下最小闭环:
- 航班计划导入与实时状态更新。
- 基础资源分配(机位、登机口)。
- 关键里程碑跟踪(EOBT/TOBT/TSAT/ALDT/EIBT)。
- 延误与资源冲突告警。
- 对外查询接口与基础订阅推送。
不纳入首期:
- 复杂优化排班(全局优化模型)。
- 深度 AI 预测与自适应调度。
- 多机场统一调度中心能力。
5.1 上线门禁(Go/No-Go)
- 功能门禁:航班导入、里程碑更新、资源分配、冲突告警链路可端到端演示。
- 性能门禁:关键状态事件处理延迟达到最低可接受值。
- 数据门禁:核心实体对账通过率 >= 99.9%,无高危不一致项。
- 安全门禁:统一认证鉴权生效,关键接口通过授权与审计检查。
6. 非功能目标(初步)
- 可用性:支持 7x24 运行。
- 实时性:核心状态更新达到秒级可见。
- 可追溯:关键状态变化具备审计记录。
- 安全性:统一认证鉴权与最小权限控制。
6.1 最小 SLO(评审口径)
| 指标 | 目标值 | 最低可接受值 |
|---|---|---|
| 可用性 | 月度 99.95% | 月度 99.9% |
| 事件处理延迟 | P95 <= 2 秒 | P95 <= 5 秒 |
| 容灾恢复 | RTO <= 30 分钟,RPO <= 5 分钟 | RTO <= 2 小时,RPO <= 15 分钟 |
| 审计覆盖率 | 100% 关键变更可追溯 | 99.9% 可追溯 |
7. 迭代方向
Phase 1:完成 MVP 闭环并上线单机场。
Phase 2:补充预测能力和规则优化,提高运行效率。
Phase 3:增强容量与容灾,支持多机场扩展。
8. 文档边界与引用
- 本文档仅定义初步高层设计,不展开详细数据字典、接口字段级协议和部署参数。
- 技术栈主选、备选触发条件以
airport-wiki/concepts/aodb/开源技术栈选型决策.md为准。 - 需求边界、验收基线以
airport-wiki/concepts/aodb/AODB 核心需求提炼.md为准。