在當今瞬息萬變的電商市場,尤其是二手交易平臺閑魚,每秒都可能產生海量的用戶行為、商品更新、交易動態和聊天消息。要實時處理這些每秒千萬級的數據洪流,并為推薦、風控、搜索、監控等核心業務提供即時洞察,背后是一套極其復雜、高性能、高可用的實時數據處理服務體系。閑魚的實現,是阿里集團多年大數據技術積淀與業務場景深度結合的典范。
一、 數據洪流的源頭:統一采集與接入
一切始于數據的產生。閑魚的實時數據源極其多樣:
- 用戶行為日志:點擊、瀏覽、搜索、收藏、聊天等,通過埋點SDK收集。
- 業務數據庫變更:商品發布、價格修改、訂單狀態更新等,通過阿里巴巴開源的Canal(基于數據庫binlog的增量訂閱與消費組件)實時捕獲MySQL的變更日志。
- 消息中間件:各類系統間的異步消息,如交易成功通知。
這些數據首先被統一接入到阿里云SLS(日志服務)或Apache Kafka這類高吞吐、低延遲的消息隊列中。這一步的關鍵是輕量級、高并發、保序的客戶端采集Agent,以及服務端強大的分區(Partition)擴展能力,通過水平分片將每秒千萬級的數據流分散到數百甚至上千個分區中并行處理,避免單點瓶頸。
二、 核心引擎:流計算平臺的選型與優化
這是實時處理的“大腦”。閑魚經歷了從自研到擁抱開源,再到深度定制優化的演進。目前其核心是 Apache Flink,一個高性能、高可靠、精確一次(Exactly-Once)語義的流處理框架。
為何選擇Flink?
- 低延遲與高吞吐的完美平衡:其基于流水線的執行模型,而非微批處理,使得數據處理延遲可低至毫秒級,同時吞吐量極大。
- 狀態管理:內置強大的狀態后端(如RocksDB),可以高效管理窗口聚合、用戶畫像實時更新等需要記住歷史數據的計算。
- 事件時間與亂序處理:支持基于事件時間(Event Time)的窗口計算,并能通過水位線(Watermark)機制處理網絡延遲導致的數據亂序,這對精準統計(如每分鐘交易額)至關重要。
閑魚團隊對Flink進行了大量深度優化:
- 資源調度:與阿里云K8s、Flink on Yarn深度集成,實現動態擴縮容,在“雙11”等大促期間秒級擴容數千個計算核心。
- 狀態后端優化:針對RocksDB進行參數調優,并探索新型狀態后端以降低訪問延遲。
- SQL化與平臺化:提供Flink SQL開發界面,讓業務開發人員能更專注于邏輯而非底層API,提升開發效率。
三、 架構全景:分層與協同
閑魚的實時數據處理服務并非單一系統,而是一個分層協同的體系:
- 實時計算層(Flink Jobs集群):
- 實時ETL:對原始數據進行清洗、格式化、維度關聯(如將商品ID關聯到類目、賣家信息),輸出結構化的實時數據流。
- 實時聚合:進行秒/分鐘級別的窗口聚合,如實時GMV大盤、熱門商品排行、地域分布熱力圖。
- 復雜事件處理(CEP):用于實時風控,例如識別“短時間內發布大量相似商品”的欺詐模式。
- 實時特征計算:為推薦和搜索引擎提供用戶實時興趣向量、商品實時熱度分等。
- 實時存儲與查詢層:計算結果需要被快速存儲和訪問。
- 高性能KV存儲:如 阿里云Tair(Redis企業版) 或 HBase,用于存儲實時畫像、模型特征、計數(如商品瀏覽量)。它們提供亞毫秒級的讀寫能力。
- 實時OLAP數據庫:如 Apache Druid 或 ClickHouse,用于存儲聚合后的時間序列數據,支持業務人員通過BI工具進行多維度、快速的下鉆分析。
- 消息隊列:處理后的數據流再次寫入Kafka,供下游多個業務方訂閱消費,形成數據流閉環。
- 數據服務層:
- 提供統一的HSF/Dubbo RPC接口或 HTTP API,將實時數據(如商品實時瀏覽量、賣家信用狀態)封裝成服務,供前端、推薦、風控等系統低延遲調用。
四、 保障千萬級處理的基石:穩定性與運維
- 端到端精確一次(Exactly-Once):從數據源(Kafka)-> Flink計算 -> 數據匯(如HBase),通過Flink的檢查點(Checkpoint)機制和兩階段提交(Two-Phase-Commit)Sink,確保數據在任意環節故障恢復后不丟不重。
- 智能監控與告警:
- 全鏈路監控:對數據延遲(Lag)、吞吐量(TPS)、CPU/內存使用率、Checkpoint成功率進行全方位監控。
- 業務指標監控:如實時GMV是否斷崖式下跌,這可能是數據處理鏈路出現問題的信號。
- 自動故障恢復與降級:當某個Flink Task失敗時,自動從最近的Checkpoint重啟;當實時系統不可用時,可降級使用近線數據(如幾分鐘前的數據)作為兜底。
- 資源成本優化:通過混部技術(將在線業務和實時計算業務部署在同一批物理機上,利用其資源使用波谷)、彈性伸縮、計算任務合并(將多個小Job合并)等手段,在保障性能的同時控制巨大的計算成本。
###
閑魚每秒千萬級實時數據處理的實現,是一個集統一接入、Flink流計算引擎、多層次實時存儲、標準化數據服務、強悍的穩定性保障于一體的系統工程。它不僅僅是一項技術,更是驅動閑魚業務實時化、智能化的核心引擎。從你點擊一個商品的瞬間,到系統為你推薦下一個可能感興趣的物品,這背后正是這套實時數據處理服務在毫秒間完成的采集、計算與反饋。隨著實時數倉(Real-Time Data Warehouse)和流批一體(Stream-Batch Unification)技術的成熟,這套體系將向著更簡單、更統一、更智能的方向持續演進。