本教程開始前,假設你已經下載並解壓到相應目錄下java
windows 下啓動kafkaapache
第1步:啓動服務器
進入到kafka安裝目錄
1.先啓動zookeeper
bin\windows\zookeeper-server-start.bat config/zookeeper.propertiesbootstrap
2.再啓動kafka
bin\windows\kafka-server-start.bat config/server.propertieswindows
第2步:建立一個主題
bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTheme服務器
若是咱們運行list topic命令,咱們如今能夠看到該主題:
bin\windows\kafka-topics.bat --list --zookeeper localhost:2181測試
第3步:發送一些消息
Kafka帶有一個命令行客戶端,它將從文件或標準輸入中獲取輸入,並將其做爲消息發送到Kafka集羣。默認狀況下,每行將做爲單獨的消息發送。運行生產者,而後在控制檯中輸入幾條消息發送到服務器。
bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic testTheme
This is a message
Hello Worldui
第4步:啓動消費者
bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic testTheme --from-beginningspa
第5步:設置多代理羣集
首先咱們爲每一個代理建立一個配置文件命令行
server-1.properties
server-2.properties代理
如今編輯這些新文件並設置下列屬性:
server-1.properties:
broker.id=1
listeners=PLAINTEXT://:9093
log.dir=/tmp/kafka-logs-1
server-2.properties:
broker.id=2
listeners=PLAINTEXT://:9094
log.dir=/tmp/kafka-logs-2
該broker.id屬性是羣集中每一個節點的惟一且永久的名稱。咱們必須重寫端口和日誌目錄,由於咱們在同一臺機器上運行這些端口和日誌目錄,而且咱們但願讓全部代理都試圖在同一個端口上註冊或覆蓋彼此的數據。
咱們已經有Zookeeper和咱們的單節點了,因此咱們只須要啓動兩個新節點:
bin\windows\kafka-server-start.bat config/server-1.properties
bin\windows\kafka-server-start.bat config/server-2.properties
如今建立一個複製因子爲3的新主題:
bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
如今咱們有一個集羣,咱們怎麼知道哪一個經紀人在作什麼?要查看運行「描述主題」命令:
bin\windows\kafka-topics.bat --describe --zookeeper localhost:2181 --topic my-replicated-topic
Topic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs:
Topic: my-replicated-topic Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0
這裏作一下解釋。第一行給出了全部分區的摘要,每一個附加行提供了有關一個分區的信息。因爲咱們只有一個分區,因此只有一行。
「Leader(leader)」是負責給定分區的全部讀寫操做的節點。每一個節點將成爲分區隨機選擇部分的領導者。
「Replicas(副本)」是複製此分區的日誌的節點列表,不管他們是領導者仍是他們如今都活着。
「Isr」是一組「同步」副本。這是複製品列表的子集,目前活着並被引導到領導者身邊。
請注意,在個人示例中,節點1是該主題惟一分區的領導者。
咱們能夠在咱們建立的原始主題上運行相同的命令,以查看它的位置:
bin\windows\kafka-topics.bat --describe --zookeeper localhost:2181 --topic testTheme
Topic:testTheme PartitionCount:1 ReplicationFactor:1 Configs:
Topic: testTheme Partition: 0 Leader: 0 Replicas: 0 Isr: 0
因此在這裏並不奇怪,原始主題沒有副本,而且在服務器0上,它是咱們建立羣集時惟一的服務器。
讓咱們發佈一些消息給咱們的新主題:
bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic my-replicated-topic
message 1
message 2
讓咱們獲取這些消息:
bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic
message 1
message 2
如今咱們來測試容錯。因爲leader1是領導者,如今咱們關閉它
wmic process where "caption = 'java.exe' and commandline like '%server-1.properties%'" get proce
ProcessId
3632
taskkill /pid 3632 /f
leader已切換到其中一個從屬節點,而且節點1再也不處於同步副本集中:
bin\windows\kafka-topics.bat --describe --zookeeper localhost:2181 --topic my-replicated-topic
Topic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs:
Topic: my-replicated-topic Partition: 0 Leader: 0 Replicas: 0,1,2 Isr: 0,2
可是即便原先的leadern停掉,這些消息仍然可用於消費:
bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic
message 1
message 2
入門教程到這裏就結束了,是否是很是簡單,Linux上的操做和windows同樣只須要
把bin\windows 換成bin/ .bat換成.sh便可。
點擊此處直接下載:kafka下載