1. 程式人生 > >windows安裝kafka的叢集配置

windows安裝kafka的叢集配置

下載kafka二進位制包kafka_2.11-0.9.0.1.tgz,解壓到D:\tools\kafka_2.11-0.9.0.1

1.拷貝conf/server.properties為 
第一個節點server-3.properties,修改如下內容: 
broker.id=3
port=9093 
host.name=localhost
log.dirs=D:\\tools\\kafka_2.11-0.9.0.1\\kafka-logs-9093   這裡的日誌應該是訊息佇列的日誌
zookeeper.connect=localhost:2181 

第二個節點server-4.properties,修改如下內容: 
broker.id=4 


port=9094 
host.name=localhost
log.dirs=D:\\tools\\kafka_2.11-0.9.0.1\\kafka-logs-909
zookeeper.connect=localhost:2181 

2.修改kafka_2.10-0.8.1.1\config\log4j.properties ,新增:
kafka.logs.dir=D:\\tools\\kafka_2.11-0.9.0.1\\logs   這裡的日誌應該是每一個kafka server的狀態日誌

3.啟動指令碼 
第一個節點: 
set JMX_PORT=19093 
cd D:\tools\kafka_2.11-0.9.0.1\bin\windows 

kafka-server-start.bat ..\..\config\server-3.properties

第二個節點: 
set JMX_PORT=19094 
cd D:\tools\kafka_2.11-0.9.0.1\bin\windows 
kafka-server-start.bat ..\..\config\server-4.properties

4.建立topic批處理指令碼bin\kafka-topics.bat 
kafka-run-class.bat  kafka.admin.TopicCommand  %* 

5.建立topic  
cd D:\tools\kafka_2.11-0.9.0.1\bin\windows
 

現在新建立一個topic, replication-factor表示該topic需要在不同的broker中儲存幾份,這裡replication-factor設定為2, 表示在兩個broker中儲存。partitions表示對topic日誌的分割槽數量。
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 2 --partitions 3 --topic my-replicated-topic 

6.檢視topic描述資訊 
cd D:\tools\kafka_2.11-0.9.0.1\bin\windows 

檢視topic列表

kafka-topics.bat --list --zookeeper localhost:2181

檢視一個topic的詳細資訊

kafka-topics.bat --describe --zookeeper localhost:2181 --topic my-replicated-topic 

輸出結果
        Topic:my-replicated-topic       PartitionCount:3        ReplicationFactor:2     Configs:
        Topic: my-replicated-topic      Partition: 0    Leader: 3       Replicas: 3,2   Isr: 3,2
        Topic: my-replicated-topic      Partition: 1    Leader: 2       Replicas: 2,3   Isr: 2,3
        Topic: my-replicated-topic      Partition: 2    Leader: 3       Replicas: 3,2   Isr: 3,2

Leader: 如果有多個brokerBroker儲存同一個topic,那麼同時只能有一個Broker負責該topic的讀寫,其它的Broker作為實時備份。負責讀寫的Broker稱為Leader.
Replicas : 表示該topic的0分割槽在3號和2號broker中儲存,這裡列出儲存該分割槽的所有節點,不管該節點是否在服務中。
Isr : 表示正在服務中的broker, Isr是Replicas的子集


7.生產topic訊息 
kafka-console-producer.bat --broker-list localhost:9093 --topic my-replicated-topic 

此時命令列游標移到下一行,這裡在等待你輸入要傳送的訊息。可以隨意輸入一些字串。

8.消費topic訊息 
kafka-console-consumer.bat --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic

此時這裡會接收到你之前傳送的訊息,如果繼續傳送訊息,這裡會持續接收到訊息。