3. 实时风控网关架构设计:整体架构图、请求处理流程、关键组件

实时风控网关是 Champion Challenger 体系的核心流量入口与决策分发层。它需要在高并发、低延迟的约束下,完成流量接入、特征计算、模型推理与策略路由。本章从整体架构、请求处理流程与关键组件三个维度展开设计。

3.1 整体架构图

实时风控网关采用分层解耦设计,自上而下分为接入层、计算层、决策层与存储层。各层职责清晰,通过异步消息与 RPC 调用协同工作。

实时风控网关整体架构图 接入层 HTTP/HTTPS 网关 | gRPC 网关 | WebSocket 网关 | 协议适配器 限流 | 鉴权 | 参数校验 | 请求去重 | 流量染色 计算层(特征中心) 实时特征计算 | 离线特征缓存 | 特征聚合 | 特征衍生 特征存储(Redis / HBase) | 特征版本管理 | 特征血缘追踪 特征获取耗时 < 5ms | 特征命中率 > 99% 决策层(决策引擎 + 模型服务) 规则引擎(Drools / 自研) | 模型推理(TensorFlow / ONNX / PMML) Champion 模型 | Challenger 模型 | A/B 分流 | 冠军/挑战者切换 决策耗时 < 20ms | 模型版本管理 | 灰度发布 存储层 MySQL(规则/配置) | Redis(特征/缓存) | HBase(历史特征) Kafka(事件日志) | Elasticsearch(检索/分析)
架构设计要点:各层之间通过异步消息队列(Kafka)解耦,避免同步阻塞。接入层与计算层之间采用连接池复用,减少连接建立开销。决策层内部 Champion 与 Challenger 模型并行推理,通过 A/B 分流组件决定最终输出。

3.2 请求处理流程

一次完整的实时风控请求处理流程包含 8 个步骤,从流量接入到结果返回,全链路耗时需控制在 50ms 以内。

步骤 阶段 操作 耗时预算
1 接入 请求到达网关,完成限流、鉴权、参数校验 < 2ms
2 特征获取 根据请求 ID 从特征中心获取实时与离线特征 < 5ms
3 特征计算 执行特征衍生与聚合计算 < 3ms
4 规则引擎 执行预置规则(黑白名单、阈值规则) < 5ms
5 模型推理 Champion 与 Challenger 模型并行推理 < 15ms
6 A/B 分流 根据分流策略选择 Champion 或 Challenger 结果 < 1ms
7 决策合成 融合规则结果与模型结果,生成最终决策 < 2ms
8 结果返回 异步记录日志,同步返回决策结果 < 2ms
请求处理流程图 1. 请求接入 2. 特征获取 3. 特征计算 4. 规则引擎 5. 模型推理 6. A/B 分流 → 决策返回
性能瓶颈提示:步骤 5(模型推理)通常占用最长耗时。建议将 Champion 与 Challenger 模型部署在同一 GPU 节点,利用批处理推理降低延迟。若模型差异较大,可考虑模型蒸馏或提前退出策略。

3.3 关键组件

3.3.1 决策引擎

决策引擎是风控网关的“大脑”,负责将规则与模型结果融合为最终决策。它包含三个核心模块:规则引擎、模型调度器与决策合成器。

  • 规则引擎:支持热加载的规则集(Drools / 自研 DSL),用于黑白名单、阈值判断、频次控制等确定性逻辑。
  • 模型调度器:管理 Champion 与 Challenger 模型的版本、部署节点与推理请求分发。支持模型灰度发布与回滚。
  • 决策合成器:根据 A/B 分流策略(随机分流 / 按用户 ID 哈希 / 按流量比例)选择最终输出,并记录决策日志。
模块 功能 技术选型 关键指标
规则引擎 确定性规则执行 Drools / 自研 DSL 规则执行 < 3ms
模型调度器 模型版本管理与推理分发 TensorFlow Serving / Triton 推理延迟 < 15ms
决策合成器 A/B 分流与结果融合 自研 Java 组件 合成耗时 < 1ms

3.3.2 特征中心

特征中心负责为决策引擎提供实时、准确的特征数据。它采用“实时计算 + 离线缓存”的混合架构,确保特征获取的高性能与高可用。

  • 实时特征计算:基于 Flink / Spark Streaming 对实时事件流进行窗口聚合(如 1 分钟内交易次数)。
  • 离线特征缓存:将用户画像、设备指纹等低频变化特征预加载到 Redis,设置 TTL 自动过期。
  • 特征版本管理:每个特征都有版本号,支持特征回溯与 A/B 测试。
特征中心设计原则:特征获取必须幂等,避免重复计算;特征缓存命中率需达到 99% 以上;特征更新延迟不超过 10 秒。

3.3.3 模型服务

模型服务是 Champion Challenger 实践的核心载体。它需要同时部署 Champion(当前最优)与 Challenger(待验证)两个模型,并支持无缝切换。

特性 Champion 模型 Challenger 模型
状态 生产稳定 灰度验证
流量比例 90% ~ 100% 0% ~ 10%
推理节点 多节点负载均衡 单节点或少量节点
监控指标 延迟、吞吐、AUC 延迟、吞吐、AUC、提升率
切换策略 回滚至上一版本 提升流量比例 → 成为新 Champion
模型服务部署建议:使用容器化部署(Kubernetes),Champion 与 Challenger 模型分别部署在不同 Deployment 中,通过 Service 进行流量分发。模型版本管理使用 MLflow 或自研模型仓库。