應用場景
更新時間 2024-09-19 08:54:56
最近更新時間: 2024-09-19 08:54:56
分享文章
本節主要介紹分布式消息服務Kafka常用的應用場景
分布式消息服務Kafka主要適用于以下幾種場景:
日志收集
- 構建應用系統和分析系統的橋梁,并將它們之間的關聯解耦。
- 支持實時在線分析系統和類似于 Hadoop 的離線分析系統。
Kafka本身的性能是非常高效的,同時Kafka的特性決定它非常適合作為"日志收集中心",這是因為Kafka在采集日志的時候業務是無感知的,其能夠兼容自己的上游,能夠直接地通過配置加密消息。當日志數據發送到Kafka集群里面,其實對于業務而言是完全無侵入的。同時其在下游又能夠直接地對接Hadoop/ODPS等離線倉庫存儲和Strom/Spark等實現實時在線分析。在這樣的情況之下,使用Kafka,只需要用戶去關注整個流程里面的業務邏輯,而無需做更多的開發就能夠實現統計、分析以及報表。

流計算處理
- 構建應用系統和分析系統的橋梁,并將它們之間的關聯解耦。
- 通過支持流計算引擎,可對接開源 Storm/Samza/Spark 流計算引擎。
Kafka能夠做到流計算處理,比如股市走向分析、氣象數據測控、網站用戶行為分析等領域,由于在這些領域中數據產生快、實時性強、數據量大,所以很難統一采集并入庫存儲后再做處理,這便導致傳統的數據處理架構不能滿足需求。而Kafka Stream以及Storm/Samza/Spark等流計算引擎的出現,可以根據業務需求對數據進行計算分析,最終把結果保存或者分發給需要的組件。

多路轉發
- 一對多消費模型:發布/訂閱”模型,支持同份數據集能同時被消費多次。
- 支持實時和批處理:支持本地數據持久化和 Page Cache,在無性能損耗的情況下能同時傳送消息到實時和批處理的消費者。
對于不同業務維度,需要不同計算方式,比如對于對賬系統而言,可能需要實時的流處理方式;對于統計分析而言,可能使用批計算方式。Kafka能夠實現多路轉發,上游生產一份數據,多個下游節點都能夠獲取這份數據并做出相應的處理,Kafka可完成數據多路轉發功能。