攜程的數(shù)據(jù)采集系統(tǒng)架構(gòu)

實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)

原文鏈接

1. 典型的數(shù)據(jù)采集分析系統(tǒng)

  1. 數(shù)據(jù)采集
  2. 數(shù)據(jù)傳輸
  3. 數(shù)據(jù)清洗/建模/存儲(chǔ)
  4. 數(shù)據(jù)統(tǒng)計(jì)/分析/挖掘
  5. 數(shù)據(jù)可視化/反饋
現(xiàn)代化系統(tǒng)都要借鑒大數(shù)據(jù)優(yōu)秀的開源解決方案,所以都是架構(gòu)在Java上

2. 攜程的實(shí)現(xiàn)

  1. 客戶端數(shù)據(jù)采集:手機(jī)SDK
  2. 后端業(yè)務(wù):登入后日志/訂單等(基于UID)
  3. 數(shù)據(jù)清洗直到挖掘:基于Netty的網(wǎng)絡(luò)框架方案
  4. 數(shù)據(jù)即時(shí)調(diào)用的消息隊(duì)列:基于Kafka
數(shù)據(jù)存儲(chǔ)
    * Hadoop
    * Storm
    * OLAP
    * HBase 主要做系統(tǒng)檢測(cè)

3. 技術(shù)組件特性

1) Netty 和Nginx主要區(qū)別是全異步

  • 內(nèi)置多種數(shù)據(jù)編碼解碼功能,支持多種網(wǎng)絡(luò)協(xié)議
  • 高性能
  • 可擴(kuò)展性
  • API的易用性
  • 成功的商業(yè)應(yīng)用

2) 加密/壓縮方案

  • 主要是解決可逆加密的客戶端(JS/APP)秘鑰存儲(chǔ)問(wèn)題
  • 使用Emscripten把C代碼轉(zhuǎn)化為JS代碼

3) 消息機(jī)制

  • 基于Kafka的攜程自制消息中間件Hermes

對(duì)消息存儲(chǔ)方式的對(duì)比

* MySQL適于消息量中等,并對(duì)消息治理有較高要求的場(chǎng)景
* Kafka 適于大量群發(fā)消息, 且對(duì)實(shí)時(shí)性要求不高的場(chǎng)景
* `Broker` 分布式文件存儲(chǔ)(是Kafka的擴(kuò)展)

4) Kafka 的技術(shù)特性

  • 消息持久化能力,和大數(shù)據(jù)量情況下的高性能訪問(wèn)
  • 高吞吐率
  • 支持消息分區(qū)存儲(chǔ)后的分布式消息,即保證分區(qū)后的消息順序
  • 支持離線或?qū)崟r(shí)數(shù)據(jù)處理
  • 支持在線水平擴(kuò)展 Scale out

典型的Kafka集群組成和運(yùn)行模式

* 若干`Producer`(即消息產(chǎn)生源)
* 若干`Broker`(即吞吐集群)
* 若干`ConsumerGroup`
* 以及一個(gè)`Zookeeper`集群
* Kafka通過(guò)Zookeeper管理集群配置,選舉leader,以及在ConsumerGroup發(fā)生變化時(shí)進(jìn)行rebalance
* Producer 使用push 模式講消息發(fā)布到broker,Consumer 使用pull 模式從broker訂閱并消費(fèi)消息

5) 基于Avro格式的實(shí)時(shí)數(shù)據(jù)災(zāi)備存儲(chǔ)

主要指當(dāng)網(wǎng)絡(luò)嚴(yán)重阻塞/中斷,或系統(tǒng)突發(fā)故障時(shí),臨時(shí)數(shù)據(jù)緊急保存方式并待恢復(fù)后迅速處理,并不是永久化災(zāi)備

Avro是一個(gè)數(shù)據(jù)序列化反序列化框架,可以將數(shù)據(jù)對(duì)象轉(zhuǎn)化為便于存儲(chǔ)的格式

4. 方案可行性和數(shù)據(jù)對(duì)比

使用ApacheBenchmark進(jìn)行性能壓力測(cè)試

5. 系統(tǒng)工具

  1. 單用戶瀏覽跟蹤
  2. 頁(yè)面轉(zhuǎn)化率
  3. 用戶訪問(wèn)流
  4. 點(diǎn)擊熱力圖
  5. 采集數(shù)據(jù)驗(yàn)證測(cè)試
  6. 系統(tǒng)性能報(bào)表
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容