3. 实时风控网关架构设计:整体架构图、请求处理流程、关键组件
实时风控网关是 Champion Challenger 体系的核心流量入口与决策分发层。它需要在高并发、低延迟的约束下,完成流量接入、特征计算、模型推理与策略路由。本章从整体架构、请求处理流程与关键组件三个维度展开设计。
3.1 整体架构图
实时风控网关采用分层解耦设计,自上而下分为接入层、计算层、决策层与存储层。各层职责清晰,通过异步消息与 RPC 调用协同工作。
架构设计要点:各层之间通过异步消息队列(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 |
性能瓶颈提示:步骤 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 或自研模型仓库。