2. 实时风控系统架构:事件驱动架构、规则引擎、决策流、切片服务在架构中的位置
实时风控系统需要在高吞吐、低延迟的约束下完成欺诈检测、信用评估、反洗钱等决策任务。理解各核心组件在架构中的位置与协作关系,是进行人群切片复盘的前提。本章从架构视角拆解事件驱动架构、规则引擎、决策流与切片服务的职责与交互。
2.1 整体架构分层
实时风控系统通常采用分层解耦设计,自上而下分为接入层、计算层、决策层与存储层。切片服务横跨计算层与存储层,为复盘提供数据基础。
架构核心原则:事件驱动解耦、规则可编排、决策可追溯、切片可回溯。
2.2 事件驱动架构:系统的“神经末梢”
事件驱动架构是实时风控的数据底座。所有业务行为(登录、交易、领券、修改信息)均被封装为标准化事件,通过消息队列异步流入系统。
| 特性 | 说明 | 典型实现 |
|---|---|---|
| 异步解耦 | 业务系统与风控系统通过事件总线隔离,互不影响 | Kafka、RocketMQ、Pulsar |
| 事件标准化 | 统一事件 schema(事件ID、时间戳、主体、客体、环境) | Avro、Protobuf、JSON Schema |
| 有序性保障 | 同一用户/设备的事件按序消费,避免乱序导致误判 | 分区键 + 单线程消费 |
| 回溯重放 | 支持按时间戳或偏移量重新消费,用于复盘与模型训练 | Kafka 日志保留策略 |
切片复盘关键点:事件驱动架构保留了最原始的行为日志,切片服务可以基于事件时间戳精确还原某一时刻的用户状态,这是“人群切片”能够实现的基础。
2.3 规则引擎:实时决策的“第一道防线”
规则引擎负责将风控策略转化为可执行的判定逻辑。在实时风控中,规则引擎通常以轻量级嵌入或独立服务两种形态存在。
- 轻量级嵌入:规则以 DSL 或脚本形式嵌入计算节点(如 Flink 算子),延迟极低(< 5ms),适合高频简单规则。
- 独立规则服务:规则引擎独立部署(如 Drools、EasyRules),支持热更新、复杂规则组合,适合中低频复杂规则。
规则引擎在架构中的位置
规则引擎位于计算层,接收事件驱动架构传递的标准化事件,经过特征提取后执行规则匹配。匹配结果作为决策流的输入之一。
2.4 决策流:策略编排的“中枢神经”
决策流将规则引擎的输出、模型评分、人工审核等环节编排成有向无环图(DAG)。每个节点代表一个决策步骤,边代表数据流转与条件分支。
| 决策流节点类型 | 职责 | 示例 |
|---|---|---|
| 规则节点 | 调用规则引擎,输出命中/未命中 | “IP 高频访问”规则 |
| 模型节点 | 调用机器学习模型,输出风险评分 | XGBoost 欺诈模型 |
| 聚合节点 | 合并多个上游结果,计算综合风险 | 加权求和、决策矩阵 |
| 路由节点 | 根据条件分流到不同处理路径 | 高风险→人工审核;低风险→放行 |
| 动作节点 | 执行最终处置动作 | 拦截、告警、打标、放行 |
切片复盘陷阱:决策流中的条件分支可能导致同一用户在不同时间点经历不同的决策路径。切片服务必须记录决策流实例ID和节点执行日志,否则复盘时无法还原真实决策链路。
2.5 切片服务:复盘的“时间机器”
切片服务是实时风控系统中唯一专门为复盘设计的组件。它负责在特定时间点或时间窗口内,对用户群体进行快照切片,并存储切片数据供后续分析。
切片服务的核心能力
- 实时切片:在事件流入时同步生成切片,延迟在秒级,用于实时监控与快速复盘。
- 离线切片:基于数据湖(Hive/Iceberg)按天/小时批量生成切片,用于深度分析与模型训练。
- 切片回溯:支持指定时间点或事件ID,精确还原当时的人群状态与特征分布。
- 切片对比:对比不同时间点的切片,发现人群特征漂移或策略效果变化。
切片服务在架构中的位置
切片服务横跨计算层与存储层:
- 在计算层,切片服务作为 Flink/Spark 的 sink 算子,将切片结果写入存储。
- 在存储层,切片服务管理切片元数据与数据生命周期,提供查询接口。
2.6 组件协作关系总结
| 组件 | 所在层 | 输入 | 输出 | 切片复盘价值 |
|---|---|---|---|---|
| 事件驱动架构 | 接入层 → 计算层 | 业务行为 | 标准化事件 | 提供原始行为日志,是切片的“原材料” |
| 规则引擎 | 计算层 | 事件 + 特征 | 规则命中结果 | 记录规则命中标签,用于切片分组 |
| 决策流 | 决策层 | 规则结果 + 模型评分 | 最终决策 | 记录决策路径,用于切片链路分析 |
| 切片服务 | 计算层 → 存储层 | 事件 + 决策结果 | 切片快照 | 核心产出,直接支撑复盘分析 |
架构设计启示:切片服务不应是事后追加的“补丁”,而应在架构设计初期就作为一等公民纳入。事件驱动架构提供了数据基础,规则引擎和决策流提供了决策标签,切片服务则将这些信息组织成可复盘的结构化数据。四者缺一不可。