1. 风控数据链路概述
1.1 风控系统架构演进
风控系统从早期的规则引擎单机部署,逐步演变为覆盖实时、准实时、离线全链路的分布式智能风控体系。其核心驱动力来自业务场景的复杂化、数据量的爆发式增长以及对抗时效性的严苛要求。
| 阶段 | 架构特征 | 数据链路 | 典型延迟 |
|---|---|---|---|
| 1.0 单机规则 | 单体应用 + 关系型数据库 | 请求 → 数据库查询 → 规则匹配 → 响应 | 秒级 |
| 2.0 分布式规则 | 分布式服务 + 缓存 + 消息队列 | 请求 → MQ → 规则引擎集群 → 缓存/DB → 响应 | 百毫秒级 |
| 3.0 实时计算 | 流计算 + 特征平台 + 决策引擎 | 事件 → Kafka → Flink 实时特征 → 决策引擎 → 结果回写 | 毫秒~秒级 |
| 4.0 智能风控 | 实时 + 离线融合 + 模型在线推理 | 多源 → Kafka → 实时/离线双链路 → 模型服务 → 决策 | 毫秒~小时级 |
演进趋势: 数据链路从"请求驱动"转向"事件驱动",Kafka 作为核心事件总线,承担了实时流与离线批之间的数据桥接角色。
1.2 Kafka 在风控中的核心定位
在风控数据链路中,Kafka 并非简单的消息队列,而是整个数据流的中枢神经系统。它连接了事件采集、实时计算、离线批处理、特征存储、决策引擎等多个子系统。
- 事件采集层: 埋点、网关、业务系统将用户行为、交易、登录等事件实时写入 Kafka Topic。
- 实时计算层: Flink/Spark Streaming 从 Kafka 消费事件,计算实时特征、执行规则、触发模型推理。
- 离线批处理层: Kafka 数据通过 Connector 或 Flink 落盘至 HDFS/数仓,用于模型训练、离线回溯、报表分析。
- 结果回传层: 决策结果、风险标签、处置指令通过 Kafka 回传至业务系统或下游执行器。
1.3 实时风控与离线风控的数据流差异
实时风控与离线风控在数据时效性、处理逻辑、存储选型、一致性要求等方面存在本质差异。理解这些差异是设计 Kafka 主题策略、分区数、副本因子、消费组配置的前提。
| 对比维度 | 实时风控 | 离线风控 |
|---|---|---|
| 时效性要求 | 毫秒~秒级,要求低延迟 | 分钟~小时级,允许批量延迟 |
| 数据量级 | 单条事件,QPS 高,单条体积小 | 全量历史数据,TB~PB 级 |
| 处理引擎 | Flink / Spark Streaming / 规则引擎 | Spark / Hive / MapReduce |
| 存储选型 | Redis / HBase / 内存状态 | HDFS / 对象存储 / 数仓 |
| 数据一致性 | 最终一致性,允许少量乱序 | 强一致性,精确一次语义 |
| Kafka 消费模式 | 实时消费,低水位 lag | 批量消费,周期性拉取 |
| 典型场景 | 登录风控、交易反欺诈、实时授信 | 模型训练、离线回溯、报表统计 |
设计建议: 实时风控 Topic 建议使用
log.compaction.type=delete + 短保留时间(如 1~3 天);离线风控 Topic 建议使用 log.compaction.type=compact 或长保留时间(如 7~30 天),并配合 S3/HDFS Connector 做冷备。
常见误区: 不要将实时风控与离线风控共用同一个 Kafka Topic 和消费组。实时消费组 lag 过高会导致特征延迟,影响决策时效;离线批量消费会拉高实时 Topic 的消费延迟,造成数据堆积。建议物理隔离 Topic,或使用不同 consumer group 并设置独立的消费策略。