目前在唯品會實時平臺并不是一個統一的計算框架,而是包括Storm,Spark,Flink在內的三個主要計算框架,這是由于歷史原因形成。
實時平臺的職責主要包括實時計算平臺和實時基礎數據。實時計算平臺在Storm、Spark、Flink等計算框架的基礎上,為監控、穩定性提供了保障,為業務開發提供了數據的輸入與輸出。實時基礎數據包含對上游埋點的定義和規范化,對用戶行為數據、MySQL的Binlog日志等數據進行清洗、打寬等處理,為下游提供質量保證的數據。
在架構設計上,包括兩大數據源。一種是在App、微信、H5等應用上的埋點數據,原始數據收集后發送到在kafka中;另一種是線上實時數據的MySQL Binlog日志。數據在計算框架里面做清洗關聯,把原始的數據通過實時ETL為下游的業務應用(包括離線寬表等)提供更易于使用的數據。
以UV計算為例,首先對Kafka內的埋點數據進行清洗,然后與redis數據進行關聯,關聯好的數據寫入Kafka中;后續Flink計算任務消費Kafka的關聯數據。通常任務的計算結果的量也很大(由于計算維度和指標特別多,可以達到上千萬),數據輸出通過也是通過Kafka作為緩沖,最終使用同步任務同步到HBase中,作為實時數據展示。
同步任務會對寫入HBase的數據限流和同類型的指標合并,保護HBase。與此同時還有另一路計算方案作為容災。
原文鏈接:
Apache Flink 在唯品會的實踐
https://www.iteblog.com/archives/2415.html