2. 风控网关架构设计:分层架构设计、请求处理流程、与业务系统的交互方式、高可用设计要点
风控网关作为实时风控系统的流量入口与决策中枢,其架构设计直接决定了系统的吞吐能力、响应延迟与稳定性。本节从分层架构、请求处理流程、业务交互模式及高可用保障四个维度展开,帮助学员建立完整的网关设计认知。
2.1 分层架构设计
风控网关采用经典的四层架构,自底向上依次为:接入层、路由层、决策层与输出层。每层职责清晰,便于独立扩展与灰度发布。
| 层级 | 核心职责 | 关键组件 | 典型技术选型 |
|---|---|---|---|
| 接入层 | 协议适配、流量整形、安全校验 | HTTP/HSF/Dubbo 网关、限流器、IP黑白名单 | Nginx + Lua、Spring Cloud Gateway |
| 路由层 | 请求分发、参数校验、上下文构建 | 路由表、参数解析器、特征预提取 | 自研路由引擎、Apollo 配置中心 |
| 决策层 | 规则引擎、模型推理、策略组合 | LightGBM 模型服务、规则集、评分卡 | ONNX Runtime、自研规则引擎 |
| 输出层 | 结果封装、异步回调、日志审计 | 结果组装器、MQ 生产者、ES 写入器 | Kafka、Elasticsearch、Redis |
架构要点: 接入层与路由层为无状态服务,支持水平扩展;决策层为有状态服务,需通过模型缓存与预加载降低推理延迟;输出层采用异步写日志,避免阻塞主链路。
2.2 请求处理流程
一次完整的风控请求从进入网关到返回结果,经历以下 8 个核心步骤:
- 协议解析与安全校验:接入层解析 HTTP/HSF 协议头,校验签名、时间戳与 IP 白名单。
- 流量控制:根据调用方 AppKey 与接口维度执行令牌桶限流,超出阈值直接返回降级结果。
- 参数校验与补全:路由层校验必填字段,补全设备指纹、IP 归属地等上下文信息。
- 特征预提取:从请求参数与缓存中提取高频特征(如用户历史行为统计、设备风险等级)。
- 规则前置过滤:执行白名单、黑名单、频控等快速规则,命中则直接返回,不进入模型。
- 模型推理:将特征向量送入 LightGBM 模型服务,获取风险概率与决策分数。
- 策略组合:将模型分数与规则结果按策略矩阵加权,生成最终决策(通过/人工/拒绝)。
- 结果输出与异步日志:输出层封装响应,同步返回调用方;异步写入全量日志到 ES 与 Kafka。
性能优化点: 步骤 4 的特征预提取与步骤 5 的规则前置过滤可并行执行,减少串行等待时间。实测可降低 15%~20% 的 P99 延迟。
2.3 与业务系统的交互方式
风控网关与业务系统之间采用 同步 + 异步 双通道交互模式,兼顾实时性与最终一致性。
| 交互模式 | 适用场景 | 协议/组件 | 超时控制 |
|---|---|---|---|
| 同步 RPC | 登录、支付、下单等核心交易场景 | HSF / Dubbo / HTTP | 50ms ~ 200ms |
| 异步 MQ | 事后风控、异步审核、数据补传 | RocketMQ / Kafka | 无严格超时 |
| 缓存查询 | 黑白名单、设备指纹、用户画像 | Redis / Tair | 5ms ~ 10ms |
| 回调通知 | 人工审核结果、模型重判结果 | HTTP Callback / MQ | 按业务约定 |
避坑指南: 同步 RPC 必须设置合理的超时与熔断阈值,避免业务系统线程被风控慢请求打满。建议超时设置为 150ms,熔断窗口为 10s 内错误率超过 50% 则自动降级。
2.4 高可用设计要点
风控网关作为关键链路节点,需从以下五个维度保障高可用:
- 无状态化与水平扩展:接入层与路由层所有节点无状态,通过负载均衡器(SLB/Nginx)均匀分发流量,支持秒级扩容。
- 多级缓存降级:模型特征缓存(本地 Caffeine + 分布式 Redis)减少重复计算;当模型服务不可用时,自动降级为规则引擎兜底。
- 熔断与限流:基于 Sentinel 或自研熔断器,对下游依赖(模型服务、数据库)实施熔断保护;网关入口按 AppKey + API 维度限流。
- 同城双活与异地容灾:核心网关集群部署在两个可用区,流量按权重分配;当单可用区故障时,DNS 切换至备用集群,RTO < 30s。
- 全链路监控与告警:每个处理步骤埋点上报延迟、QPS、错误率;配置多维告警规则(P99 超 200ms、错误率突增 5 倍等)。
高可用核心指标: 网关整体可用性 ≥ 99.99%,单次请求 P99 延迟 ≤ 100ms,模型服务故障时降级响应时间 ≤ 30ms。