Files
my-vault/airport-wiki/concepts/aodb/AODB 最小部署拓扑草案.md
T

4.2 KiB

AODB 最小部署拓扑草案

1. 文档定位

本文档给出 AODB MVP 的最小部署拓扑、关键高可用策略和恢复思路,用于细化高层设计中的部署、SLO 和容灾约束。

2. 目标

  • 以单机场私有化部署为前提
  • 优先满足当前态统一、事件不丢、审计可回放
  • 用最少组件完成可恢复、可观测、可演练的运行形态

3. 逻辑拓扑

             +-------------------------+
             |    External Systems     |
             | SSIM / AIDX / AFTN      |
             +------------+------------+
                          |
                          v
                +-------------------+
                |   Kong Gateway    |
                +-------------------+
                          |
          +---------------+----------------+
          |               |                |
          v               v                v
 +----------------+ +----------------+ +------------------+
 | Flight Service  | | Milestone Svc | | External API Svc |
 +----------------+ +----------------+ +------------------+
          |               |                |
          +-------+-------+----------------+
                  |
                  v
          +----------------------+
          | PostgreSQL/Timescale |
          | Current + Audit +    |
          | Outbox               |
          +----------+-----------+
                     |
                     v
             +---------------+
             | CDC/Publisher |
             +-------+-------+
                     |
                     v
                 +-------+
                 | Kafka |
                 +---+---+
                     |
          +----------+-----------+
          |                      |
          v                      v
 +----------------+      +----------------+
 | Resource Svc   |      | Alert Service  |
 +----------------+      +----------------+

 +----------------+
 | Redis Cache    |
 +----------------+

 +-------------------------------+
 | Prometheus / Grafana / Loki   |
 +-------------------------------+

4. 部署分区建议

4.1 状态层

  • PostgreSQL / TimescaleDB
  • Kafka
  • Redis

要求:

  • 与无状态服务分离部署
  • 具备独立备份和恢复策略

4.2 无状态业务层

  • Flight Operation Service
  • Milestone Service
  • Resource Service
  • Alert Service
  • External API Service
  • CDC / Publisher

要求:

  • 多副本
  • 滚动升级
  • 配置和密钥外置

4.3 平台观测层

  • Kong
  • Keycloak
  • Prometheus
  • Grafana
  • Loki

5. 高可用建议

5.1 PostgreSQL / TimescaleDB

  • 主备部署
  • 定期全量备份 + WAL / PITR 能力
  • 演练主备切换

5.2 Kafka

  • 多 broker
  • replication factor >= 3
  • min ISR >= 2
  • 消费位点外部可追踪

5.3 Redis

  • 主从或哨兵
  • 缓存失效不应影响核心写链路

5.4 无状态服务

  • 至少 2 副本
  • 健康检查 + 自动重启
  • 发布器必须支持重复执行幂等

6. 最小恢复策略

6.1 数据库故障

  • 切换到备实例
  • 根据最近备份和 WAL 进行恢复
  • 恢复后执行 Published Fact 与 Outbox 对账

6.2 Kafka 堆积或单 broker 故障

  • Broker 恢复后消费者追赶
  • 重点检查订阅延迟、DLQ 率、CDC 积压

6.3 CDC / Publisher 中断

  • 根据 Outbox 位点断点续传
  • 保证重复发布不产生重复副作用

6.4 查询层异常

  • 核心写链路不中断
  • 对外查询可降级,但订阅恢复后必须可补偿

7. 关键观测指标

指标 含义
ingest_to_publish_latency_p95 接入到发布的 P95 延迟
outbox_backlog Outbox 堆积量
cdc_publish_retry_count 发布重试次数
kafka_consumer_lag 消费滞后量
dlq_rate 解析失败和旁路率
conflict_mttr 冲突平均处置时间
review_task_open_count 未关闭复核任务数

8. 关键演练场景

  1. PostgreSQL 主备切换
  2. Kafka 单 broker 故障恢复
  3. CDC 中断和断点恢复
  4. 订阅端断线重连与游标补偿
  5. 关键字段回放抽检

9. 与高层设计的关系

  • 本文档细化 开源机场运营数据库(AODB)高层设计文档.md 中的部署与 SLO 章节。
  • 它不是最终部署手册,但必须足以支撑架构评审、容灾设计和运维基线定义。