Apache Kafka 概述

在大數據中,使用了大量的數據。 關於數據,我們有兩個主要挑戰。第一個挑戰是如何收集大量的數據,第二個挑戰是分析收集的數據。 爲了克服這些挑戰,您必須需要一個消息系統。

Kafka專爲分佈式高吞吐量系統而設計。Kafka往往工作得很好,作爲一個更傳統的消息代理的替代品。與其他消息傳遞系統相比,Kafka具有更好的吞吐量,內置分區,複製和固有的容錯能力,這使得它非常適合大規模消息處理應用程序。

什麼是消息系統?

消息系統負責將數據從一個應用程序傳輸到另一個應用程序,因此應用程序可以專注於數據,但不擔心如何共享它。 分佈式消息傳遞基於可靠消息隊列的概念。 消息在客戶端應用程序和消息傳遞系統之間異步排隊。 有兩種類型的消息模式可用 - 一種是點對點,另一種是發佈 - 訂閱(pub-sub)消息系統。 大多數消息模式遵循 pub-sub 

點對點消息系統

在點對點系統中,消息被保留在隊列中。 一個或多個消費者可以消耗隊列中的消息,但是特定消息只能由最多一個消費者消費。 一旦消費者讀取隊列中的消息,它就從該隊列中消失。 該系統的典型示例是訂單處理系統,其中每個訂單將由一個訂單處理器處理,但多個訂單處理器也可以同時工作。 下圖描述了結構。

發佈 - 訂閱消息系統

在發佈 - 訂閱系統中,消息被保留在主題中。 與點對點系統不同,消費者可以訂閱一個或多個主題並使用該主題中的所有消息。 在發佈 - 訂閱系統中,消息生產者稱爲發佈者,消息使用者稱爲訂閱者。 一個現實生活的例子是Dish電視,它發佈不同的渠道,如運動,電影,音樂等,任何人都可以訂閱自己的頻道集,並獲得他們訂閱的頻道時可用。

什麼是Kafka?

Apache Kafka是一個分佈式發佈 - 訂閱消息系統和一個強大的隊列,可以處理大量的數據,並使您能夠將消息從一個端點傳遞到另一個端點。Kafka適合離線和在線消息消費。Kafka消息保留在磁盤上,並在羣集內複製以防止數據丟失。Kafka構建在ZooKeeper同步服務之上。 它與Apache Storm和Spark非常好地集成,用於實時流式數據分析。

好處

以下是Kafka的幾個好處 -

  • 可靠性 - Kafka是分佈式,分區,複製和容錯的。

  • 可擴展性 - Kafka消息傳遞系統輕鬆縮放,無需停機。

  • 耐用性 - Kafka使用分佈式提交日誌,這意味着消息會盡可能快地保留在磁盤上,因此它是持久的。

  • 性能 - Kafka對於發佈和訂閱消息都具有高吞吐量。 即使存儲了許多TB的消息,它也保持穩定的性能。

Kafka非常快,並保證零停機和零數據丟失。

用例

Kafka可以在許多用例中使用。 其中一些列出如下 -

  • 指標 - Kafka通常用於操作監控數據。 這涉及聚合來自分佈式應用程序的統計信息,以產生操作數據的集中饋送。

  • 日誌聚合解決方案 - Kafka可用於跨組織從多個服務收集日誌,並使它們以標準格式提供給多個服務器。

  • 流處理 - 流行的框架(如Storm和Spark Streaming)從主題中讀取數據,對其進行處理,並將處理後的數據寫入新主題,供用戶和應用程序使用。Kafka的強耐久性在流處理的上下文中也非常有用。

需要Kafka

Kafka是一個統一的平臺,用於處理所有實時數據Feed。Kafka支持低延遲消息傳遞,並在出現機器故障時提供對容錯的保證。 它具有處理大量不同消費者的能力。Kafka非常快,執行2百萬寫/秒。Kafka將所有數據保存到磁盤,這實質上意味着所有寫入都會進入操作系統(RAM)的頁面緩存。 這使得將數據從頁面緩存傳輸到網絡套接字非常有效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章