3. 系统总体架构设计:分层架构与事件驱动模型

反欺诈实时评分系统要求毫秒级响应、高并发接入与复杂规则计算,单一单体架构无法满足。本章采用分层架构结合事件驱动模型,将系统拆解为接入层、计算层、存储层、决策层四个核心层次,各层职责清晰、解耦独立,通过异步消息与同步API协同工作。

3.1 四层架构总览

分层架构的核心原则是上层依赖下层,下层不感知上层。接入层负责协议适配与流量清洗;计算层执行特征提取与模型推理;存储层提供实时与离线数据支撑;决策层聚合多维度评分结果,输出最终处置指令。

层次 核心职责 关键组件 响应要求
接入层 协议转换、限流、鉴权、请求分发 API Gateway、负载均衡、WAF < 5ms
计算层 实时特征计算、规则引擎、模型推理 Flink/Spark Streaming、规则引擎、模型服务 < 50ms
存储层 实时缓存、离线数仓、特征存储 Redis、ClickHouse、HBase、对象存储 < 10ms(缓存)
决策层 评分聚合、策略编排、处置执行 决策引擎、风控中台、消息队列 < 20ms
架构设计要点: 接入层与计算层之间采用异步削峰策略,避免突发流量击穿下游;决策层与存储层之间采用读写分离,确保评分链路不受离线分析影响。

3.2 数据流与事件驱动模型

系统采用事件驱动架构作为数据流转的骨架。每个评分请求被封装为一个标准事件,经过接入层发布到事件总线,计算层、决策层分别订阅所需事件类型,实现解耦与并行处理。

3.2.1 核心事件类型

事件名称 生产者 消费者 事件内容摘要
ScoreRequest 接入层 计算层 设备指纹、用户ID、交易金额、时间戳
FeatureComputed 计算层 决策层 特征向量、模型分数、规则命中列表
DecisionMade 决策层 接入层/存储层 最终评分、处置动作、风险标签
FeedbackEvent 业务系统 存储层/计算层 人工审核结果、逾期标签、申诉记录

3.2.2 事件驱动流程

  1. 请求接入:客户端发起评分请求,接入层完成鉴权与限流后,生成 ScoreRequest 事件发布到 Kafka。
  2. 特征计算:计算层消费 ScoreRequest,从存储层拉取实时特征(如近30分钟交易频次),执行规则引擎与模型推理,产出 FeatureComputed 事件。
  3. 决策聚合:决策层消费 FeatureComputed,结合策略编排(如黑名单拦截、模型阈值判定),生成 DecisionMade 事件。
  4. 结果回写:接入层消费 DecisionMade,将评分结果返回客户端,同时异步写入存储层用于离线分析。
事件驱动优势: 各层可以独立扩缩容,计算层高峰期可临时增加消费者实例;新增特征或规则时,只需新增事件订阅者,无需修改上下游代码。

3.3 架构图绘制

以下架构图展示四层分层结构、核心组件以及事件驱动的数据流向。图中使用深色节点表示各层关键服务,箭头表示事件流与数据流方向。

反欺诈实时评分系统分层架构图 反欺诈实时评分系统分层架构图 接入层 API Gateway · 限流 · 鉴权 · WAF · 协议适配 REST API gRPC WebSocket MQTT 事件总线 (Kafka / Pulsar) 计算层 实时特征计算 · 规则引擎 · 模型推理 · 设备指纹 Flink 实时特征 规则引擎 (Drools) 模型推理 (ONNX) 设备指纹服务 存储层 实时缓存 · 离线数仓 · 特征存储 · 事件溯源 Redis 缓存 ClickHouse HBase 对象存储 决策层 评分聚合 · 策略编排 · 处置执行 · 人工审核 评分聚合器 策略编排引擎 处置执行器 人工审核队列 说明:实线箭头表示事件流,双向箭头表示数据读写,各层通过事件总线异步解耦

3.4 分层架构关键设计原则

  • 无状态接入:接入层不保存任何业务状态,所有节点对等,支持水平扩展与灰度发布。
  • 计算与存储分离:计算层只负责逻辑处理,不直接持久化数据;存储层提供统一的数据服务接口。
  • 决策闭环:决策层拥有最终评分权,计算层产出的特征与分数仅作为决策输入,不直接对外输出。
  • 异步为主、同步为辅:核心评分链路采用异步事件驱动,仅对需要实时返回的场景(如支付拦截)保留同步API。
架构避坑提示: 避免在计算层直接调用存储层写入接口,防止特征计算任务阻塞存储写入链路;建议计算层只通过事件总线输出结果,由专用消费者负责持久化。

3.5 分层架构的扩展性分析

以下表格对比各层在不同业务场景下的扩展策略,帮助理解分层架构的弹性能力。

场景 接入层 计算层 存储层 决策层
双11流量洪峰 增加API Gateway实例 + 动态限流 增加Flink并行度 + 消费者分组 Redis集群扩容 + 读写分离 策略缓存预热 + 降级开关
新增模型上线 无变更 新增模型服务节点 + 订阅新事件 增加特征存储字段 配置新策略路由
离线回溯分析 无变更 启动离线批处理任务 ClickHouse查询加速 无变更
故障隔离 熔断下游 + 返回默认评分 降级规则引擎为静态规则 缓存降级为本地缓存 切换备用决策树

3.6 架构图补充:数据流时序

为更清晰展示事件驱动下的数据流转时序,以下补充一张数据流时序图,聚焦一次完整评分请求的生命周期。

反欺诈评分请求数据流时序图 一次评分请求的数据流时序 客户端 接入层 计算层 决策层 1. 评分请求 2. ScoreRequest 事件 特征计算 + 模型推理 4. FeatureComputed 策略编排 + 评分聚合 6. DecisionMade 事件 7. 评分结果返回 8. 异步写入存储层 关键时序指标 步骤1→步骤7:端到端延迟目标 < 100ms(同步链路) 步骤8:异步写入,不阻塞主链路,允许秒级延迟
时序设计要点: 步骤2与步骤4之间,计算层可并行执行特征计算与模型推理,通过Flink的异步IO提升吞吐;步骤6中决策层将结果同时发布到接入层(同步返回)和存储层(异步持久化),确保主链路低延迟。