您可能感興趣的文章:
....
kafka的定位
提到kafka,不太熟悉或者稍有接觸的開發人員,第一想法可能會覺得它是一個訊息系統。其實Kafka的定位並不止於此。
Kafka官方文件介紹說,Apache Kafka是一個分散式流平臺,並給出瞭如下解釋:
流平臺有三個關鍵的能力:
- 釋出訂閱記錄流,和訊息佇列或者企業新訊息系統類似。
- 以可容錯、持久的方式儲存記錄流
- 當記錄流產生時就進行處理
Kafka通常用於應用中的兩種廣播型別:
- 在系統和應用間建立實時的資料管道,能夠可信賴的獲取資料。
- 建立實時的流應用,可以處理或者響應資料流。
由此可見,kafka給自身的定位並不只是一個訊息系統,而是通過釋出訂閱訊息這種機制實現了流平臺。
其實不管kafka給自己的定位如何,他都逃脫不了釋出訂閱訊息的底層機制。本文講解的重點,也是kafka釋出訂閱訊息的特性。
Kafka和大多數訊息系統一樣,搭建好kafka叢集后,生產者向特定的topic生產訊息,而消費者通過訂閱topic,能夠準實時的拉取到該topic新訊息,進行消費。如下圖:
Kafka特性
kafka和有以下主要的特性:
- 訊息持久化
- 高吞吐量
- 可擴充套件性
尤其是高吞吐量,是他的最大賣點。kafka之所以能夠實現高吞吐量,是基於他自身優良的設計,及叢集的可擴充套件性。後面章節會展開來分析。
Kafka應用場景
- 訊息系統
- 日誌系統
- 流處理