3. Risk Gateway 架构:整体架构、数据流与处理节点与样本采集模块设计
Risk Gateway 作为样本偏差校验的核心引擎,其架构设计直接决定了校验的实时性、准确性与可扩展性。本章从整体架构、数据流与处理节点、样本采集模块三个层次展开,帮助学员建立从宏观到微观的系统认知。
3.1 Risk Gateway 整体架构
Risk Gateway 采用分层解耦 + 事件驱动的微服务架构,自上而下分为四层:
| 层级 | 核心职责 | 关键组件 |
|---|---|---|
| 接入层 | 统一接收外部请求,协议转换与限流 | API Gateway、负载均衡、限流器 |
| 决策层 | 执行样本偏差校验规则与模型推理 | 规则引擎、模型服务、样本缓存 |
| 数据层 | 样本存储、特征计算与偏差统计 | 样本库、特征仓库、偏差计算器 |
| 监控层 | 全链路监控、告警与可视化 | 指标采集、日志聚合、Dashboard |
架构设计要点: 接入层与决策层之间通过异步消息队列解耦,避免高并发场景下校验逻辑阻塞上游请求;数据层采用读写分离,样本写入走独立管道,不影响在线查询性能。
3.2 数据流与处理节点
一条完整的样本偏差校验请求,在 Risk Gateway 内部经过 5 个核心处理节点,形成请求入站 → 样本采集 → 特征提取 → 偏差计算 → 结果回写的闭环数据流。
3.2.1 核心处理节点清单
| 节点名称 | 输入 | 输出 | 处理耗时(P99) |
|---|---|---|---|
| N1:请求解析 | 原始 HTTP/消息体 | 标准化样本元数据 | < 2ms |
| N2:样本采集 | 样本元数据 + 原始特征 | 结构化样本记录 | < 5ms |
| N3:特征提取 | 结构化样本 | 特征向量 + 统计指标 | < 10ms |
| N4:偏差计算 | 特征向量 + 参考分布 | 偏差分数 + 告警级别 | < 15ms |
| N5:结果回写 | 偏差结果 | 样本标签 + 审计日志 | < 3ms |
性能基线: 全链路 P99 耗时控制在 50ms 以内,其中偏差计算节点是唯一可能触发模型推理的环节,建议单独部署 GPU 资源池。
3.3 样本采集模块设计
样本采集模块(N2)是偏差校验的第一道关卡,其设计质量直接影响后续特征提取与偏差计算的准确性。模块内部包含三个子组件:
- 采集策略器: 支持全量采集、按比例采样、按标签分层采样三种模式,通过配置中心动态下发。
- 样本格式化器: 将异构输入(JSON、Protobuf、CSV)统一转换为内部样本结构,包含样本 ID、时间戳、特征字段、业务标签。
- 样本缓冲池: 基于 RingBuffer 实现无锁写入,批量刷入样本库,避免高频采集时 IO 抖动。
3.3.1 样本结构定义
// Sample 是样本采集模块的核心数据结构
type Sample struct {
SampleID string `json:"sample_id"` // 全局唯一样本ID
Timestamp int64 `json:"timestamp"` // 采集时间戳(毫秒)
Features map[string]float64 `json:"features"` // 特征字段:key=特征名, value=数值
Labels map[string]string `json:"labels"` // 业务标签:key=标签名, value=标签值
Source string `json:"source"` // 数据来源:online/batch/replay
CollectMode string `json:"collect_mode"` // 采集模式:full/ratio/label
}
3.3.2 采集策略对比
| 策略模式 | 适用场景 | 存储开销 | 偏差检测灵敏度 |
|---|---|---|---|
| 全量采集 | 新模型上线、A/B 测试 | 高 | 最高 |
| 按比例采样 | 稳态业务、流量较大 | 中 | 中 |
| 按标签分层采样 | 长尾分布、关注特定群体 | 低 | 按层可控 |
避坑提示: 按比例采样时,如果业务流量存在明显的周期性波动(如白天/夜间差异),建议叠加时间窗口自适应采样率,避免高峰时段样本过载、低谷时段样本稀疏。
3.3.3 样本缓冲池写入流程
- 采集器接收格式化后的样本,写入 RingBuffer 当前写指针位置。
- 写指针自增,当缓冲区达到批量阈值(默认 512 条)或超时(默认 100ms)时触发刷盘。
- 刷盘线程将批量样本以事务方式写入样本库,写入成功后更新读指针。
- 若样本库写入失败,样本进入重试队列,最多重试 3 次,超过则丢弃并记录告警。
通过 RingBuffer 无锁设计,样本采集模块在 8 核机器上可支撑 50,000 TPS 的写入吞吐,P99 写入延迟低于 2ms。