2. AML监测系统架构总览:分层架构、核心组件与数据流

实时反洗钱(AML)监测系统需要处理海量交易数据、执行复杂规则与模型推理,并在秒级内输出告警。为满足高吞吐、低延迟与可扩展性要求,生产级系统普遍采用分层解耦架构。本章从分层视角拆解系统全貌,明确各层职责、核心组件与数据流转路径。

架构设计原则: 每一层仅依赖其下层提供的抽象接口,层内组件可独立扩缩容;数据流单向向下游传递,避免循环依赖。

2.1 四层架构总览

系统自底向上划分为数据层、模型层、监测层与告警层。各层通过消息队列与API网关衔接,形成松耦合的管道式架构。

AML监测系统四层架构总览 AML 实时监测系统 — 四层架构总览 数据层 (Data Layer) 交易流水接入 · 客户主数据 · 黑名单库 · 外部情报 Kafka / Pulsar 消息总线 · 实时流处理 (Flink) · 数据湖 (Iceberg) 模型层 (Model Layer) 规则引擎 (Drools) · 机器学习推理 (ONNX/TensorRT) 模型版本管理 · 特征工程管道 · 模型热加载 监测层 (Monitoring Layer) 实时评分 · 行为画像 · 关联分析 · 异常检测 窗口聚合 · 图计算 (Neo4j) · 时间序列基线 告警层 (Alert Layer) 告警生成 · 案件管理 · 监管报送 · 人工复核 数据流方向:数据层 → 模型层 → 监测层 → 告警层(单向管道)

2.2 核心组件与职责

下表列出各层的关键组件及其在生产环境中的具体职责:

架构层 核心组件 职责说明 技术选型示例
数据层 消息总线 接收交易流水、客户变更、外部黑名单等实时事件 Kafka / Pulsar
流处理引擎 数据清洗、格式转换、字段补齐、时间窗口对齐 Flink / Spark Streaming
数据湖 存储原始交易与特征快照,支持回溯与模型训练 Iceberg / Delta Lake
模型层 规则引擎 执行监管规则(如大额交易、频繁交易阈值) Drools / EasyRules
推理服务 加载 ML 模型,对交易特征进行实时评分 ONNX Runtime / TensorRT
特征管道 从数据层提取特征,完成归一化、聚合与编码 Feast / Tecton
监测层 评分聚合器 融合规则得分与模型得分,生成综合风险分 自研微服务
行为画像 维护客户/账户的实时行为基线(交易频次、金额分布) Redis + Flink
关联分析 基于图结构发现团伙交易、资金循环等异常模式 Neo4j / JanusGraph
告警层 告警生成器 根据风险分阈值与规则触发条件生成结构化告警 自研告警服务
案件管理 聚合关联告警,生成调查案件,支持人工标注 自研 + Elasticsearch
监管报送 按监管格式生成大额/可疑交易报告 自研报送适配器

2.3 数据流全景

一条交易从接入到最终告警,经历以下关键数据流阶段:

  1. 交易接入:上游核心系统通过 Kafka 发送交易事件,数据层进行格式校验与字段补齐。
  2. 特征提取:模型层从数据层拉取交易与客户画像,组装特征向量(如 24h 交易笔数、平均金额、对手方多样性)。
  3. 规则+模型并行评分:规则引擎与 ML 推理服务同时执行,规则命中直接产生中间告警,模型输出风险概率。
  4. 综合评分:监测层将规则得分与模型得分加权融合,结合行为画像偏差计算最终风险分。
  5. 告警决策:若风险分超过阈值,告警层生成告警记录,并关联历史告警与客户信息。
  6. 案件流转:告警进入案件管理模块,调查员复核后决定是否上报监管。
AML监测系统数据流时序 数据流时序:从交易接入到告警输出 ① 交易接入 ② 特征提取 ③ 规则+模型评分 ④ 综合评分 ⑤ 告警决策 ⑥ 案件流转 关键延迟指标:端到端延迟 < 3 秒(P99),单节点吞吐 > 5000 TPS

2.4 关键设计要点

💡 生产建议: 数据层与模型层之间使用 特征存储 (Feature Store) 作为缓存层,避免每次推理都重复计算特征,可将特征获取延迟从 50ms 降至 2ms 以内。
  • 异步解耦:各层之间通过消息队列(Kafka/Pulsar)通信,避免同步阻塞;模型层与监测层可独立扩缩容。
  • 状态管理:监测层的行为画像与窗口聚合使用 Flink 的 Keyed State 或 Redis 持久化,支持故障恢复。
  • 模型热加载:模型层支持无中断更新模型版本,通过蓝绿部署或流量灰度切换实现。
  • 告警降噪:告警层内置聚合规则,将同一客户在 5 分钟内的重复告警合并为一条案件,减少人工复核压力。
⚠️ 常见陷阱: 不要将规则引擎与 ML 推理放在同一线程池中执行。规则引擎通常为 CPU 密集型,ML 推理可能涉及 GPU 调用,混部会导致资源争抢与延迟抖动。建议使用独立的线程池或微服务部署。

2.5 架构演进路线

不同阶段的系统复杂度对应不同的架构选择:

阶段 架构特点 适用场景
单体阶段 规则+模型+告警部署在同一进程中,共享数据库 日均交易量 < 10 万笔,规则数 < 50 条
分层阶段 按数据/模型/监测/告警分层,通过消息队列解耦 日均交易量 10 万~500 万笔,规则数 50~200 条
微服务阶段 每层内部拆分为多个独立微服务,支持独立部署与扩缩容 日均交易量 > 500 万笔,多模型并行,多租户场景