2. 整体架构设计:风控网关在微服务架构中的位置、核心模块划分
实时风控网关并非一个独立存在的系统,而是深度嵌入微服务架构的“安全前置层”。它位于流量入口(API Gateway / Load Balancer)与业务微服务集群之间,承担所有外部请求的实时风险检测与拦截职责。本章将明确其架构位置,并拆解三大核心模块:接入层、策略引擎、决策中心。
2.1 风控网关在微服务架构中的位置
在标准微服务架构中,流量路径通常为:客户端 → 负载均衡 → API网关 → 业务微服务。风控网关作为一道独立的过滤层,部署在API网关之后、业务服务之前,或直接与API网关集成。其核心职责是:在请求到达业务逻辑之前,完成风险识别与阻断。
架构原则:风控网关必须保持无状态(Stateless),以便水平扩展;同时需具备极低延迟(P99 < 5ms),避免成为性能瓶颈。
2.2 核心模块划分
风控网关内部采用分层架构,自顶向下分为三个核心模块:接入层(Access Layer)、策略引擎(Strategy Engine)、决策中心(Decision Center)。每个模块职责清晰,通过内部API或消息队列协作。
| 模块名称 | 核心职责 | 关键组件 | 性能要求 |
|---|---|---|---|
| 接入层 | 协议解析、身份认证、限流熔断、请求清洗 | 协议适配器、认证过滤器、限流器、参数校验器 | P99 < 2ms |
| 策略引擎 | 规则匹配、模型推理、特征计算、黑白名单 | 规则引擎(Drools/自研)、模型推理服务、特征缓存 | P99 < 10ms |
| 决策中心 | 风险评分、处置动作、事件记录、异步上报 | 评分卡、处置执行器、事件总线、数据管道 | P99 < 5ms |
2.3 接入层(Access Layer)
接入层是风控网关的入口,负责所有外部请求的预处理。它不执行任何风控逻辑,只做数据清洗和基础防护。
- 协议解析:支持HTTP/HTTPS、gRPC、Dubbo等协议,统一转换为内部上下文对象。
- 身份认证:校验Token、API Key、签名等,拒绝非法请求。
- 限流熔断:基于令牌桶或滑动窗口算法,防止突发流量冲垮下游。
- 参数清洗:去除无效字段、格式化时间戳、脱敏敏感数据。
实战要点:接入层应使用异步非阻塞I/O模型(如Netty、Vert.x),避免线程阻塞。限流阈值需根据业务高峰期动态调整,建议接入配置中心(如Nacos、Apollo)。
2.4 策略引擎(Strategy Engine)
策略引擎是风控网关的大脑,负责执行所有风控规则和模型推理。它接收接入层清洗后的请求上下文,输出风险特征和中间结果。
- 规则匹配:支持静态规则(如IP黑名单、设备指纹)和动态规则(如频率控制、行为序列)。
- 模型推理:集成机器学习模型(如XGBoost、神经网络),通过ONNX或PMML格式加载。
- 特征缓存:使用Redis或本地缓存存储高频特征(如用户历史行为、设备信誉分),减少重复计算。
- 策略热更新:支持规则和模型的热加载,无需重启网关。
注意:策略引擎必须设计降级方案。当模型推理超时或缓存不可用时,应自动降级为静态规则,避免请求阻塞。
2.5 决策中心(Decision Center)
决策中心是风控网关的执行器,根据策略引擎输出的风险特征,做出最终处置决策,并记录事件日志。
- 风险评分:综合规则命中次数、模型得分、历史行为,计算最终风险分数(0-100)。
- 处置动作:支持放行、拒绝、人工审核、二次验证(如短信OTP)、延迟处理等。
- 事件记录:将完整请求上下文、特征、决策结果写入消息队列(如Kafka),供离线分析。
- 异步上报:将风险事件上报至风控中台、告警系统、数据湖。
2.6 模块间协作与数据流
三个核心模块通过请求上下文(Request Context)传递数据,避免重复解析。上下文对象包含:
- 基础信息:请求头、参数、客户端IP、设备指纹。
- 认证结果:用户ID、角色、Token有效期。
- 特征向量:规则命中列表、模型得分、特征缓存值。
- 决策结果:风险评分、处置动作、处置原因。
性能优化:上下文对象使用ThreadLocal或对象池复用,减少GC压力。建议使用Protobuf或FlatBuffers序列化,降低内存拷贝开销。
2.7 本章小结
风控网关在微服务架构中扮演“安全前置”角色,通过接入层、策略引擎、决策中心三层架构,实现请求的实时风险检测与处置。接入层负责预处理,策略引擎负责推理,决策中心负责执行。三层之间通过请求上下文高效协作,并通过数据同步层异步上报事件,确保主流程低延迟、高可用。