2. 特征服务基础架构:分层架构、核心组件与数据流转

在归因稳定性巡检场景中,特征服务需要同时支撑高吞吐的在线推理、低延迟的近线补数据和海量的离线回溯。单一架构无法满足这三类需求,因此业界普遍采用在线 / 近线 / 离线三层分离的架构模式。每一层独立部署、独立扩缩,通过统一的元数据中心和存储层实现数据协同。

2.1 分层架构总览

三层架构的核心设计思想是:在线层追求毫秒级响应,近线层处理分钟级延迟的流式更新,离线层负责小时级或天级的批量回溯与训练样本生成。三层共享同一份特征定义(Feature Spec),但数据存储和计算引擎各自独立。

特征服务三层架构总览 在线层 (Online) 延迟:< 10ms 存储:Redis / Memory 计算:轻量级实时聚合 场景:实时推理、AB实验 组件:Feature Server、缓存 近线层 (Nearline) 延迟:秒级 ~ 分钟级 存储:Kafka / HBase 计算:Flink / Spark Streaming 场景:实时归因、窗口聚合 组件:Stream Processor、Sink 离线层 (Offline) 延迟:小时级 ~ 天级 存储:HDFS / Hive / Iceberg 计算:Spark / MapReduce 场景:回溯、训练样本生成 组件:Batch Processor、ETL 元数据中心 (Meta Center) Feature Spec / 版本 / 血缘 统一存储层 (Unified Storage) 特征快照 / 事件日志 / 标签 说明:三层共享元数据中心,但数据存储物理隔离;近线层作为在线与离线之间的缓冲带,承担“准实时”归因计算。

2.2 核心组件详解

每一层都由若干核心组件构成,这些组件协同完成特征的定义、生产、存储、服务、监控全生命周期。下表列出各层的关键组件及其职责:

层级 组件名称 核心职责 归因场景中的关键作用
在线层 Feature Server 接收推理请求,组装特征向量 实时查询归因特征,拼接用户/物料画像
缓存层 (Redis/Local) 热数据缓存,降低存储压力 缓存高频归因特征,减少重复计算
路由网关 请求分发、限流、降级 保障归因巡检高峰期服务稳定性
近线层 Stream Processor 消费实时事件流,计算窗口特征 实时归因:点击→转化窗口内的特征聚合
消息队列 (Kafka) 事件缓冲、解耦、重放 归因事件的有序传递与回溯
近线存储 (HBase) 存储分钟级更新的特征快照 提供近线归因查询,平衡延迟与一致性
离线层 Batch Processor 批量计算历史特征 归因回溯:重新计算历史归因链路
ETL 调度器 编排离线任务依赖 确保归因特征与标签对齐时间窗口
特征仓库 (Hive/Iceberg) 存储全量历史特征 归因稳定性巡检的基准数据集

2.3 数据流转路径

归因稳定性巡检的数据流转涉及三条主要路径,分别对应不同的时效性要求。理解这些路径是排查归因偏差的基础。

关键路径速览:
  • 路径 A(在线实时): 事件 → Kafka → Stream Processor → Feature Server → 在线推理 → 归因结果
  • 路径 B(近线准实时): 事件 → Kafka → Stream Processor → 近线存储 → 近线查询 → 归因结果
  • 路径 C(离线回溯): 历史事件 → Batch Processor → 特征仓库 → 离线查询 → 归因基准
归因稳定性巡检数据流转路径 事件源 Kafka Stream Processor Feature Server 在线归因 近线存储 近线归因 Batch Processor 特征仓库 离线归因 巡检关注点 1. 在线路径:关注缓存命中率、Feature Server 延迟 P99,确保归因特征实时可用。 2. 近线路径:关注 Kafka 消费延迟、窗口聚合正确性,防止归因事件丢失或乱序。 3. 离线路径:关注 Batch Processor 数据一致性,确保离线归因结果与在线/近线可对齐。

2.4 分层架构的巡检意义

理解分层架构后,归因稳定性巡检的切入点就变得清晰:

  • 在线层巡检: 重点检查缓存一致性、Feature Server 的请求成功率、特征版本是否与近线/离线对齐。归因偏差往往源于在线使用了过期特征。
  • 近线层巡检: 重点检查流处理任务的延迟、Kafka 堆积量、窗口聚合的准确性。近线层是归因实时性的核心保障。
  • 离线层巡检: 重点检查批量任务的数据完整性、特征仓库与在线/近线的数据一致性。离线层是归因回溯的基准。
实践建议: 在巡检系统中为每一层建立独立的监控仪表盘,并设置跨层数据对比任务。例如,每天对比在线层与离线层对同一时间窗口的归因特征分布,差异超过阈值即触发告警。这是发现归因稳定性问题的第一道防线。