Kafka學習筆記

        Kafka專爲分佈式高吞吐量而設計的.Kafka做爲傳統消息代理的替代品,Kafka具備更好的吞吐量,內置分區,複製和固有的容錯能力,這使得它很是適合大規模消息處理程序.異步

 

什麼是消息系統?分佈式

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

 

點對點消息系統

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

發佈 - 訂閱消息系統

在發佈 - 訂閱系統中,消息被保留在主題中。 與點對點系統不一樣,消費者能夠訂閱一個或多個主題並使用該主題中的全部消息。 在發佈 - 訂閱系統中,消息生產者稱爲發佈者,消息使用者稱爲訂閱者。 一個現實生活的例子是Dish電視,它發佈不一樣的渠道,如運動,電影,音樂等,任何人均可以訂閱本身的頻道集,並得到他們訂閱的頻道時可用。設計

 

什麼是Kafka?代理

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

好處:orm

  • 可靠性 Kafka是分佈式,分區,複製和容錯的
  • 可擴展性 Kafka消息傳遞系統輕鬆縮放,無需停機
  • 耐用性 Kafka使用分佈式提交日誌,這意味着消息會盡量地保留在磁盤上,所以它是持久的
  • 性能 Kafka對於發佈和訂閱消息都具備高吞吐量.即便存儲了許多TB的消息,它也保持穩定的性能

Kafka很是快,並保證零停機和零數據丟失.隊列

相關文章
相關標籤/搜索