1.參考
kafka 集群--3個(gè)broker 3個(gè)zookeeper創(chuàng)建實(shí)戰(zhàn)
細(xì)細(xì)品味Kafka_Kafka簡(jiǎn)介及安裝_V1.3
2.準(zhǔn)備工作
- 準(zhǔn)備3臺(tái)機(jī)器,IP地址分別為:192.168.3.11(12,13)
- 下載kafka穩(wěn)定版本,我的版本為:Scala 2.11 - kafka_2.11-0.9.0.0.tgz
- 分別解壓放入到想安裝的目錄下,我的目錄為:/home/rasa 解壓命令為:
tar -xzf *.tgz
3.搭建zookeeper集群
- 進(jìn)入解壓后的目錄/home/rasa/kafka_2.11-0.9.0.0
- 進(jìn)入config目錄下,修改zookeeper.properties文件(所有機(jī)器相同)
tickTime =2000
dataDir =/data/zookeeper/
clientPort =2181
initLimit =5
syncLimit =2
server.1 =192.168.3.11:2888:3888
server.2 =192.168.3.12:2888:3888
server.3 =192.168.3.13:2888:3888
- 在dataDir目錄/data/zookeeper/下寫一個(gè)myid文件,命令如下:
echo 1 >myid
注意:這個(gè)id是zookeeper的主機(jī)標(biāo)示,每個(gè)主機(jī)id不同第二臺(tái)是2 第三臺(tái)是3。
- 逐次啟動(dòng)3臺(tái)機(jī)器的zookeeper 構(gòu)成一個(gè)集群:
bin/zookeeper-server-start.sh config/zookeeper.properties &
由于ZooKeeper集群?jiǎn)?dòng)的時(shí)候,每個(gè)結(jié)點(diǎn)都試圖去連接集群中的其它結(jié)點(diǎn),先啟動(dòng)的肯定連不上后面還沒啟動(dòng)的,所以打印出來的部分的異常是可以忽略的。集群在選出一個(gè)Leader后,最后穩(wěn)定了。其他結(jié)點(diǎn)可能也出現(xiàn)類似問題,屬于正常。
4.搭建kafka集群
- 進(jìn)入config目錄,修改server.properties(逐個(gè)機(jī)器修改)
broker.id =1(其他機(jī)器為 2/3)
port =9092
zookeeper.connect= 192.168.3.11:2181,192.168.3.12:2181,192.168.3.13:2181
log.dirs =/home/rasa/kafka-logs
host.name =192.168.3.11
advertised.host.name =192.168.3.11
- 啟動(dòng)每臺(tái)服務(wù)器的kafka:
bin/kafka-server-start.sh config/server.properties &
5.測(cè)試集群
- 創(chuàng)建一個(gè)topic
bin/kafka-topics.sh --create --zookeeper 192.168.3.11:2181 --replication-factor 3 --partitions 1
--topic test-topic
- 查看創(chuàng)建的topic
bin/kafka-topics.sh --describe --zookeeper 192.168.3.11:2181 --topic test-topic
Topic:test-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs:
Topic: test-replicated-topic Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0
- 查看topic列表
bin/kafka-topics.sh --list --zookeeper 192.168.3.11 :2181
test
test-topic
- 查看列表及具體信息
bin/kafka-topics.sh --zookeeper localhost --describe
- 查看集群情況:
bin/kafka-topics.sh --describe --zookeeper 192.168.3.12:2181 --topic test-topic
bin/kafka-topics.sh --describe --zookeeper 192.168.3.13:2181 --topic test-topic
發(fā)現(xiàn)都能看到test-topic。
- 生產(chǎn)消息
bin/kafka-console-producer.sh --broker-list 192.168.3.13:9092 -topic test-topic
- 消費(fèi)消息
bin/kafka-console-consumer.sh --zookeeper 192.168.3.13:2181 --from-beginning --topic test-topic