1. 程式人生 > >kafka初步學習

kafka初步學習

程序 多個服務器 系統 應用程序 自己 無需 pytho 通訊 他也

消息系統

什麽是消息系統?

消息系統負責將數據從一個應用程序傳輸到另一個應用程序,因此應用程序可以專註於數據,但不擔心如何共享它。分布式消息傳遞給予可靠消息隊列的概念。消息在客戶端應用程序和消息傳遞系統之間異步排隊。

有倆種類型的消息模式可以使用:一種是點對點,另一種是發布-訂閱(pub-sub)消息系統。

大多數消息模式遵循pub-sub

點對點消息系統

點對點系統中,消息被保留在隊列中。一個或多個消費者可以消費隊列中的消息,但是特定消息只能由最多一個消費者消費。一旦消費者讀取隊列中的消息,它就從該隊列中消失(如果沒有消費者呢?)。該系統的典型示例是訂單處理系統,其中每個訂單將由一個訂單處理系統處理,但多個訂單處理器也可以同時工作。

發布—訂閱消息系統

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

如果訂閱者過多的消息隊列會發生什麽?

消息系統的應用場景

1.應用解耦

2.流量削峰

3.消息通訊

kafka

什麽是kafka?

kafka是最初由Linkedin公司開發的,使用Scala語言編寫,分布式的、分區的、多副本的、多訂閱者的日誌系統(分布式MQ系統),可以用於web/nginx日誌,搜索日誌,監控日誌,訪問日誌等。

kafka目前支持多種客戶端語言:java、python、c++、php等等。

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

kafka的好處

可靠性 - Kafka是分布式的,分區,復制和容錯的。

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

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

性能 - Kafka對於發布和訂閱消息都具有高吞吐量。及時存儲了許多TB的消息,他也保持穩定的性能。

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

kafka的應用

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

日誌聚合解決方案 - Kafka可用於跨組織從多個服務手機日誌,形式它們以標準格式給多個服務器。

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

kafka初步學習