汇丰作为全球高频交易平台,每日需处理:
- 数千万笔交易流量
- 上万笔高风险可疑行为
- 毫秒级决策延迟容忍度
因此搭建一套实时风控数据流系统,成为反欺诈和风控核心:
一、整体系统架构图

二、Kafka 原始数据结构设计
Kafka topic: user_events
,支持行为事件上报、交易事件、异常提示等。
示例事件结构:
json
{
"eventType": "login",
"uid": "8891001",
"device": "iphone14,5",
"ip": "183.3.9.120",
"ts": 1717772282
}
Kafka 使用 JSON Serializer,按 UID + 分区 Key 进行 hash 分发,确保时序。
三、Flink 实时风控主流程代码(完整)
环境依赖(Maven/Gradle):
xml
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-cep</artifactId>
<version>1.16.1</version>
</dependency>
CEP 风控流模式匹配逻辑:
java
// 1. 定义数据结构
public class Event {
public String uid;
public String eventType;
public long ts;
public String ip;
}
// 2. 定义 CEP 模式:5 分钟内连续登录失败 3 次
Pattern<Event, ?> loginFailPattern = Pattern.<Event>begin("fail")
.where(e -> "login_fail".equals(e.eventType))
.times(3)
.within(Time.minutes(5));
// 3. 应用模式到数据流
PatternStream<Event> patternStream = CEP.pattern(eventStream, loginFailPattern);
// 4. 提取结果并报警
patternStream.select((Map<String, List<Event>> pattern) -> {
Event first = pattern.get("fail").get(0);
return "警告:用户" + first.uid + "连续登录失败3次";
});
四、实时聚合风控指标(Sliding Window)
以"单位时间内交易频次 + 金额异常"为例:
java
DataStream<Tuple2<String, Double>> txStream = rawEvents
.filter(e -> e.eventType.equals("transfer"))
.map(e -> Tuple2.of(e.uid, e.amount))
.keyBy(t -> t.f0)
.window(SlidingEventTimeWindows.of(Time.minutes(1), Time.seconds(10)))
.sum(1)
.filter(sum -> sum.f1 > 10000); // 高金额交易报警
输出结果可作为次级风控判断参考:
java
sumStream.map(r -> "UID: " + r.f0 + " 一分钟内交易金额累计超限: ¥" + r.f1);
五、CEP + 聚合联动策略触发
CEP 检测"快速登录 + 短时间大额交易":
java
Pattern<Event, ?> loginAndTransfer = Pattern.<Event>begin("login")
.where(e -> "login_success".equals(e.eventType))
.next("tx")
.where(e -> "transfer".equals(e.eventType) && e.amount > 10000)
.within(Time.minutes(2));
可组合为:
行为路径风控链 = 登录 + 大额 + 非常设备/IP → 提高风险等级
六、实时推送至策略中心 + 限制账户
命中规则后向 Kafka risk_alerts
topic 发送风险事件:
java
riskStream.map(alert -> {
JSONObject result = new JSONObject();
result.put("uid", alert.uid);
result.put("risk_score", 95);
result.put("strategy", "login+high_tx");
return result.toJSONString();
});
策略中心可决定:
- 强制登出
- 弹出二次验证
- 冻结账户/交易限额
七、系统运行效果(监控展示)
模块 | TPS(每秒) | 延迟(ms) | 告警命中率 |
---|---|---|---|
Kafka Input | 45,000 | <10ms | - |
Flink CEP 模式 | 18,000 | <100ms | 94% |
风控命中策略 | 6,500 | <500ms | - |
系统每日自动识别 1,000+ 可疑账号,有效阻断黑产交易链。
八、专业总结与扩展建议
能力 | 说明 |
---|---|
CEP 引擎 | 适用于模式串联识别,低延迟高准确 |
窗口聚合 | 可量化行为频次与金额,快速捕捉爆点行为 |
Kafka 解耦传输 | 支持上下游异步扩展,避免耦合风险 |
模型融合 | 可将 CEP 命中事件作为输入训练 AI 风控模型 |
🎯 目标:
"黑产的节奏越快,我们的流控就越准。CEP + 聚合,是风控团队手中的战斧。"