簡介:
Apache Kafka® 是 一個分布式流處理平台.
我們知道流處理平台有以下三種特性:
- 可以讓你發布和訂閱流式的記錄。這一方面與消息隊列或者企業消息系統類似。
- 可以儲存流式的記錄,並且有較好的容錯性。
- 可以在流式記錄產生時就進行處理。
Kafka適合什么樣的場景?
它可以用於兩大類別的應用:
- 構造實時流數據管道,它可以在系統或應用之間可靠地獲取數據。 (相當於message queue)
- 構建實時流式應用程序,對這些流數據進行轉換或者影響。 (就是流處理,通過kafka stream topic和topic之間內部進行變化)
為了理解Kafka是如何做到以上所說的功能,從下面開始,我們將深入探索Kafka的特性。.
首先是一些概念:
- Kafka作為一個集群,運行在一台或者多台服務器上.
- Kafka 通過 topic 對存儲的流數據進行分類。
- 每條記錄中包含一個key,一個value和一個timestamp(時間戳)。
Kafka有四個核心的API:
- The Producer API 允許一個應用程序發布一串流式的數據到一個或者多個Kafka topic。
- The Consumer API 允許一個應用程序訂閱一個或多個 topic ,並且對發布給他們的流式數據進行處理。
- The Streams API 允許一個應用程序作為一個流處理器,消費一個或者多個topic產生的輸入流,然后生產一個輸出流到一個或多個topic中去,在輸入輸出流中進行有效的轉換。
- The Connector API 允許構建並運行可重用的生產者或者消費者,將Kafka topics連接到已存在的應用程序或者數據系統。比如,連接到一個關系型數據庫,捕捉表(table)的所有變更內容。
安裝
下載地址:http://kafka.apache.org/downloads

下載完解壓后,在bin目錄下執行bat腳本,如果是linux上面可以使用sh腳本,看個人。
啟動zookeeper: .\zookeeper-server-start.bat ..\..\config\zookeeper.properties
啟動kafka: .\kafka-server-start.bat ..\..\config\server.properties
創建一個topic:.\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看已創建topic: .\kafka-topics.bat --list --zookeeper localhost:2181
創建一個消息消費者: .\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
創建一個消息生產者: .\kafka-console-producer.bat --broker-list localhost:9092 --topic test
至此,一個簡單的收發message就實現了。
end
