一、依賴:
二、下載:
- kafka_2.11-0.10.0.0.tgz:可以到我的CSDN下載:kafka_2.11-0.10.0.0.tgz或者到官網下載:http://kafka.apache.org/downloads.html;
- 將下載的kafka_2.11-0.10.0.0.tgz包用rz命令上傳(我用的是XShell,你也可以使用winSCP等工具)我這邊上傳到/usr/local下,並已經使用命令解壓(tar -zxvf kafka_2.11-0.10.0.0.tgz)。三臺都如此!
三、配置:
zookeeper.properties:基於利用VMware在虛擬機上安裝Zookeeper集羣,先配置/usr/local/kafka_2.11-0.10.0.0/config下的zookeeper.properties:
tickTime=2000
initLimit=10
syncLimit=5
server.properties:從上到下配置
- Broker的ID:broker.id=1;(每個Broker保持唯一,可從0開始遞增編號,我這邊爲了和上面的server.1保持一致所以從1開始)。
- 日誌地址:定義成你想保存的地址:我這邊統一到:/usr/local/kafka/logs下(你沒有可以自己創建):
- 分區數目:默認num.partitions=1,一般情況下等於broker數量,所以我改成3
- Zookeeper連接地址:將集羣中的Zookeeper地址配入,以逗號隔開:
四、啓動:
- 先啓動zookeeper:
可以到單獨安裝的Zookeeper的bin目錄下使用命令查看Zookeeper啓動狀態(是否成功):./zkServer.sh statusnohup /usr/local/kafka_2.11-0.10.0.0/bin/zookeeper-server-start.sh /usr/local/kafka_2.11-0.10.0.0/config/zookeeper.properties &
- 啓動Kafka:
nohup /usr/local/kafka_2.11-0.10.0.0/bin/kafka-server-start.sh /usr/local/kafka_2.11-0.10.0.0/config/server.properties &
五、驗證:
- 創建topic:在zookeeper1上創建了一個叫testtopic的主題。
/usr/local/kafka_2.11-0.10.0.0/bin/kafka-topics.sh --create --topic testtopic --zookeeper zookeeper1:2181 --replication-factor 3 --partition 3
- 查看所創建的topic:1中創建的topic,因爲是集羣,所以應該在zookeeper2上可以查看到:
/usr/local/kafka_2.11-0.10.0.0/bin/kafka-topics.sh --zookeeper zookeeper2:2181 --list
- 創建發佈者producer:在zookeeper1上創建一個發佈者:
/usr/local/kafka_2.11-0.10.0.0/bin/kafka-console-producer.sh -broker-list zookeeper1:9092 -topic testtopic
- 創建消費者consumer:在zookeeper2、zookeeper3上分別創建消費者:發佈者發到對應topic下的內容會被對應的消費者接收到
/usr/local/kafka_2.11-0.10.0.0/bin/kafka-console-consumer.sh -zookeeper zookeeper2:2181 -from-beginning -topic testtopic
/usr/local/kafka_2.11-0.10.0.0/bin/kafka-console-consumer.sh -zookeeper zookeeper3:2181 -from-beginning -topic testtopic
- producer進行發佈:在3中創建的發佈者在控制檯等待輸入,輸入需要發佈的內容後點擊回車,消息就被髮布出去了。
- consumer進行訂閱:在4中創建的消費者在控制檯會輸出對應集羣中特定topic下由發佈者發出的消息