2. 风控网关基础
在微服务架构中,网关是所有外部流量的统一入口。风控网关在通用网关能力之上,叠加了实时风险决策层,是A/B实验的核心载体。本节从架构位置、与传统网关的差异、核心功能模块三个维度展开。
2.1 网关在微服务架构中的位置
网关位于客户端与微服务集群之间,承担路由、过滤、协议转换等职责。风控网关在此基础上,增加风险识别与阻断能力,形成“请求→网关→风控决策→路由”的闭环。
架构要点:风控网关与决策引擎分离部署,网关负责流量接入与策略执行,决策引擎负责复杂计算与模型推理。这种分离使得A/B实验可以独立替换决策逻辑而不影响网关稳定性。
2.2 风控网关与传统API网关的区别
传统API网关(如Kong、Zuul、Spring Cloud Gateway)主要解决路由、负载均衡、协议转换等问题;风控网关在此基础上增加了风险感知与实时决策能力。下表从多个维度进行对比:
| 对比维度 | 传统API网关 | 风控网关 |
|---|---|---|
| 核心职责 | 路由转发、负载均衡、协议适配 | 风险识别、实时决策、策略执行 |
| 决策时效 | 毫秒级(路由匹配) | 毫秒级(含规则计算+模型推理) |
| 状态管理 | 无状态或简单会话 | 有状态(滑动窗口、计数器、设备指纹) |
| 扩展能力 | 插件机制(认证、限流、日志) | 规则引擎、模型热部署、A/B实验平台 |
| 数据采集 | 基础访问日志 | 全量请求特征、设备指纹、行为序列 |
| 降级策略 | 熔断、降级、重试 | 风险降级、放行阈值、人工审核队列 |
| 典型产品 | Kong、Zuul、Spring Cloud Gateway | 自研风控网关、SaaS风控网关 |
关键差异:传统网关关注“能不能到达”,风控网关关注“该不该到达”。风控网关在路由之前插入风险决策层,对高风险请求直接阻断或标记,避免下游服务被恶意流量冲击。
2.3 核心功能模块
风控网关由三个核心功能模块构成:鉴权模块、限流模块、规则引擎模块。三者协同工作,形成完整的实时风控链路。
2.3.1 鉴权模块
鉴权是风控的第一道防线。风控网关的鉴权不仅验证身份合法性,还评估身份的可信度。
- 身份认证:Token校验、签名验证、OAuth2.0、JWT解析
- 设备指纹:采集设备ID、IP、UA、屏幕分辨率等,生成唯一设备标识
- 行为校验:检查请求是否来自异常设备、异常IP、异常时间窗口
- 上下文关联:将当前请求与历史行为关联,识别账号盗用、撞库攻击
实战注意:鉴权模块应支持多因子认证(MFA)的快速接入,同时要避免因鉴权失败导致正常用户被误杀。建议在鉴权阶段加入“可信设备白名单”机制,降低高频用户的验证延迟。
2.3.2 限流模块
限流是防止系统过载和恶意刷量的核心手段。风控网关的限流比传统限流更精细,支持多维度和动态调整。
| 限流维度 | 说明 | 典型阈值 |
|---|---|---|
| 用户维度 | 单个用户每秒/每分钟最大请求数 | 100 QPS/用户 |
| IP维度 | 单个IP来源的请求上限 | 1000 QPS/IP |
| 设备维度 | 单个设备指纹的请求频率 | 50 QPS/设备 |
| 接口维度 | 特定API接口的总请求上限 | 5000 QPS/接口 |
| 全局维度 | 网关整体吞吐量上限 | 100000 QPS |
限流算法选择:
- 滑动窗口:精度高,适合风控场景,避免临界突变
- 令牌桶:允许突发流量,适合正常业务高峰
- 漏桶:平滑流量,适合下游服务保护
2.3.3 规则引擎模块
规则引擎是风控网关的决策大脑,负责将原始请求特征转化为风险评分和处置动作。它是A/B实验的核心实验对象。
规则引擎的核心能力:
- 规则热加载:支持不停机更新规则,A/B实验期间可动态切换实验组与对照组策略
- 多策略组合:支持与、或、非、权重、优先级等逻辑组合,适应复杂风控场景
- 模型集成:可调用外部机器学习模型(如XGBoost、神经网络)进行实时评分
- 实验隔离:支持按用户ID、设备ID、流量比例进行实验分组,保证实验数据无偏
规则引擎与A/B实验:规则引擎是A/B实验的主要改造点。实验组可以引入新的规则组合、调整阈值、切换模型版本,对照组保持原有策略。网关通过流量染色机制将请求路由到不同规则版本,实现线上实时对比。
2.4 核心功能模块协作流程
一次完整的请求处理流程如下:
- 请求接入:客户端请求到达风控网关,解析HTTP/HTTPS/TCP协议
- 鉴权校验:验证Token/签名,提取设备指纹,判断身份可信度
- 限流检查:按用户、IP、设备、接口等多维度进行限流判断
- 特征提取:从请求中提取风控特征(IP、设备、行为序列、环境信息)
- 规则匹配:将特征送入规则引擎,匹配当前生效的规则版本(实验组/对照组)
- 决策执行:根据规则引擎输出执行放行、拒绝、标记、人工审核等动作
- 日志记录:将请求特征、决策结果、实验分组信息写入日志,供离线分析
性能要求:风控网关全链路延迟应控制在10ms以内(含规则引擎计算),否则会影响用户体验。建议规则引擎采用预编译模式,特征提取使用本地缓存,限流计数器使用Redis Cluster或本地滑动窗口。