訊息佇列(Message Queue)是大數據生態圈中不可或缺的中介軟體,為資訊的生產者(Producer)及生產者(Consumer)間提供了高效的非同步資料傳輸功能,其中 Kafka 是目前較為主流的開源解決方案。
非同步處裡實現:
將業務流程提供的服務解藕,保障核心服務的可用性,提供了附載平衡及水平擴充能力。
資料聚合(Data Aggregation):
為系統紀錄收集、網站紀錄分析及系統效能監控提供了資料收集整合的便利性。
即時資料發送:
為資料暫存籍資料索引提供即時的資料發送功能。
資料流架構:
為資料即時處理、用戶行為分析和機器學習模型更新等業務場景提供即時資料流。
資料倉儲:
為服務或節點資料及資料倉儲之間建立資料傳輸及提供資料預處理功能。
Kafka
作為一個訊息中介軟體有較高的可用性及擴展性。
目前仍依賴 ZooKeeper 作為叢集管理,利用了 ZooKeeper 的選舉機制來選舉主節點,由主節點提供資料讀寫服務。
訊息生產者(Producer)根據路由訊息將訊息發送給相關的代理(Broker),訊息消費者(Consumer)根據相同的路由訊息從代理(Broker)取得訊息,目前僅提供拉取模式(Pull-based)。