京東實時計算架構(gòu)演進之路
本文為作者投稿,作者簡介:諸葛子房,曾供職于京東,現(xiàn)就職于BAT,在大數(shù)據(jù)領域有多年實踐經(jīng)驗
一、背景:
從2004年開始,京東進軍互聯(lián)網(wǎng)線上化開始到至今,隨著京東的高速發(fā)展,京東商城的訂單量從萬級到百萬級、最終到達億級。而對于實時的數(shù)據(jù)需求也是層出不窮,實時計算架構(gòu)隨著數(shù)據(jù)量的增長,不斷進行革新。
(1)訂單量萬級、百萬級(以京東海外站為例) 在訂單量萬級、百萬級別的時候,也存在不少實時的數(shù)據(jù)需求,比如:商家需要看看自己每天的成交量、老板需要看看整體的成交金額,以為后續(xù)的融資做準備。類似于現(xiàn)在很多的a、b輪創(chuàng)業(yè)公司數(shù)據(jù)體量。
解決方案:而此時為了節(jié)省更少的資源,減少更少花銷。在實時架構(gòu)設計上就需要盡量用更少的成本來解決這種問題。基于mysql的實時數(shù)據(jù)統(tǒng)計方案就比較適合了。
步驟:將線上業(yè)務系統(tǒng)數(shù)據(jù)實時同步到大數(shù)據(jù)中心(在mysql的基礎上搭建了一套大數(shù)據(jù)架構(gòu)),避免了Hadoop生態(tài)龐大復雜的體系。基于mysql數(shù)據(jù)寬表進行數(shù)據(jù)統(tǒng)計,將統(tǒng)計結(jié)果寫到mysql指標結(jié)果表中,輸出一些報表或者服務。詳細步驟見下圖。
架構(gòu)優(yōu)缺點:
(1)開發(fā)簡單,基于mysql,同時避免hadoop生態(tài)復雜的體系,節(jié)省開銷。
(2)數(shù)據(jù)量過大,查詢和聚合性能較差,mysql單表量級在百萬級別。
(3)在此架構(gòu)中需要對mysql及其熟練,如何設計索引,如何進行查詢統(tǒng)計優(yōu)化。

(2)訂單量億級(以京東主站為例)
隨著公司的發(fā)展,數(shù)據(jù)體量的增大,達到千萬甚至億級別時,基于mysql的數(shù)據(jù)統(tǒng)計方案已經(jīng)完全沒辦法滿足統(tǒng)計需求了,mysql查詢也查不動了。基于此產(chǎn)生了一套新的技術(shù)方案:flink接kafka消息數(shù)據(jù),直接進行指標計算,寫入到redis里面,最后提供最外提供服務。詳細步驟見下圖。
架構(gòu)優(yōu)缺點:
(1)能夠支撐億級數(shù)據(jù)量的統(tǒng)計需求,對于大數(shù)據(jù)量友好
(2)時效性高,計算延遲較低
(3)技術(shù)方案相對復雜,新增指標需要重新開發(fā),上線任務。

(3)訂單量億級(以京東主站為例)
上述基于flink 直接指標計算的方案,優(yōu)點非常明顯,缺點也非常明顯,如果新增指標,需要重新開發(fā)上線,對于頻繁的業(yè)務需求變更,已經(jīng)很難滿足了,因此產(chǎn)生了基于OLAP的技術(shù)方案。Flink接kafka 消息,將明細數(shù)據(jù)寫入到OLAP引擎(clickhouse、apache doris)當中,構(gòu)建一張寬表,然后直接進行數(shù)據(jù)查詢統(tǒng)計基于OLAP引擎,對于新增指標只需要新增不同的sql查詢語句就能解決需求,而不用重新開發(fā),提高了整體效率,能夠應對業(yè)務的頻繁變更。詳細步驟見下圖。
架構(gòu)優(yōu)缺點:
(1)能夠支撐億級數(shù)據(jù)量的統(tǒng)計需求,對于大數(shù)據(jù)量友好
(2)時效性較高
(3)開發(fā)簡單,能夠快速應對業(yè)務需求。

三、總結(jié)
隨著公司高速發(fā)展,數(shù)據(jù)體量的改變對于技術(shù)的選型也是不斷進行變更的。只有了解不同的技術(shù)架構(gòu)的優(yōu)缺點,在合適的階段選擇不同的數(shù)據(jù)架構(gòu),才能夠更好的服務于業(yè)務。同時根據(jù)自己所處的公司當前的發(fā)展狀況,預估公司后續(xù)的發(fā)展,在技術(shù)架構(gòu)選型上也是有前瞻性的。
來源:https://blog.csdn.net/weixin_43291055/article/details/105125418
相關(guān)閱讀:
日均20萬億次計算量!騰訊基于Flink的實時流計算平臺演進之路
實戰(zhàn) | Kafka + Flink + Redis 的電商大屏實時計算案
基于 Flink 實現(xiàn)的商品實時推薦系統(tǒng)(附源碼)
一文帶你全方位(架構(gòu),原理及代碼實現(xiàn))了解Flink(3.2W字建議收藏)
基于 Flink + ClickHouse 打造輕量級點擊流實時數(shù)倉
基于Flink構(gòu)建實時數(shù)據(jù)倉庫.ppt
