Kafka 概述|點對點|發布_訂閱


kafka 是什么?

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

 

什么是消息系統?

 

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

點對點消息系統

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

point-to-point Messaging system

發布 - 訂閱消息系統

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

Publish-Subscribe Messaging system

 

Kafka特點

 

消息保存在磁盤上;Kafka構建在ZooKeeper同步服務之上;

 

怎么應用的?

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

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM