設(shè)備和資源準(zhǔn)備
- 多臺(tái)服務(wù)器(ps:我這里用了三臺(tái))
- kafka_2.11-2.3.1.tgz
- jdk8以上的環(huán)境
首先要關(guān)閉防火墻
查看防火墻狀態(tài): firewall-cmd --state 停止防火墻:systemctl stop firewalld.service 開(kāi)機(jī)禁止防火墻: systemctl disable firewalld.service
服務(wù)器分布如下:
服務(wù)器 | Myid |
---|---|
10.240.1.5 | 3 |
10.240.1.6 | 2 |
10.240.1.7 | 1 |
解壓kafka jar包并修改配置
tar -zxvf kafka_2.11-2.3.1.tgz
解壓之后進(jìn)入kafka文件夾
新建文件夾log和zookeeper 目錄結(jié)構(gòu)如下
ps:logs文件夾是系統(tǒng)自動(dòng)生成的
1唆垃、創(chuàng)建myid文件迁沫,進(jìn)入zookeeper之后
vi myid
然后輸入
服務(wù)器 | myid |
---|---|
10.240.1.5 | 3 |
10.240.1.6 | 2 |
10.240.1.7 | 1 |
不同的服務(wù)器對(duì)應(yīng)不同的myid,切記重復(fù)怎静。
然后在當(dāng)前文件夾下執(zhí)行
echo "1" > myid
echo "2" > myid
echo "3" > myid
2断医、然后進(jìn)入config文件夾,修改kafka的配置文件 server.properties
broker.id=2
這個(gè)在不同的服務(wù)器上修改成對(duì)應(yīng)的編號(hào)债蓝,要和myid保持一致壳鹤。
listeners=PLAINTEXT://10.240.1.5:9092
advertised.listeners=PLAINTEXT://10.240.1.5:9092
修改成自己服務(wù)器的ip
zookeeper.connect=10.240.1.5:2181,10.240.1.6:2181,10.240.1.7:2181
指定日志生成位置
log.dirs=/u01/app/kafka/kafka_2.11-2.3.1/log/kafka
以上是kafka的配置文件修改
3、修改zookeeper的配置文件 zookeeper.properties
maxClientCnxns=100
tickTime=2000
initLimit=10
syncLimit=5
server.1=10.240.1.5:2888:3888
server.2=10.240.1.6:2888:3888
server.3=10.240.1.7:2888:3888
末尾加上以上配置信息
指定日志生產(chǎn)位置
dataDir=/root/kafka/kafka_2.11-2.3.1/zookeeper dataLogDir=/root/kafka/kafka_2.11-2.3.1/log/zookeeper
4饰迹、關(guān)鍵的一步芳誓,核對(duì)和broker.id保持一致的設(shè)置
進(jìn)入到 /root/kafka/kafka_2.11-2.3.1/log/kafka
然后
編輯這個(gè)文件,里面有broker.id= 修改自己對(duì)應(yīng)的id
至此修改配置的工作已完成啊鸭,切記每臺(tái)服務(wù)器都不要漏掉
運(yùn)行zookeeper集群和kafka集群
1锹淌、首先是啟動(dòng)每臺(tái)服務(wù)器上的zookeeper
后臺(tái)啟動(dòng)命令
nohup ./zookeeper-server-start.sh ../config/zookeeper.properties >../log/zookeeper/zookeeper-run.log 2>&1 &
日志位置路徑要修改成自己的路徑信息
前臺(tái)啟動(dòng)命令
./zookeeper-server-start.sh ../config/zookeeper.properties
2、啟動(dòng)每臺(tái)服務(wù)器上的kafka
后臺(tái)啟動(dòng)命令
nohup ./kafka-server-start.sh ../config/server.properties >../log/kafka/kafka-run.log 2>&1 &
前臺(tái)啟動(dòng)命令
./kafka-server-start.sh ../config/server.properties
3赠制、創(chuàng)建topic
我們把myid=1的作為主節(jié)點(diǎn)赂摆,在此服務(wù)器上創(chuàng)建topic主題
./kafka-topics.sh --create --zookeeper 10.240.1.5:2181,10.240.1.6:2181,10.240.1.7:2181 --replication-factor 1 --partitions 1 --topic test_kafkaEFR
然后去每臺(tái)服務(wù)器檢查是否創(chuàng)建成功
./kafka-topics.sh -list -zookeeper localhost:2181
4、發(fā)送消息钟些,測(cè)試消息同步
我們?cè)谥鞴?jié)點(diǎn)服務(wù)器上發(fā)送消息
./kafka-console-producer.sh --broker-list 10.240.1.5:9092 烟号,10.240.1.6:9092 ,10.240.1.7:9092 --topic test_kafkaEFR
然后各自服務(wù)器消費(fèi)消息
./kafka-console-consumer.sh --bootstrap-server 10.240.1.5:9092 政恍,10.240.1.6:9092 汪拥,10.240.1.7:9092 --topic test_kafkaEFR --from-beginning
如果能同步接收,至此集群部署完成 ps:啟動(dòng)kafka的時(shí)候要同時(shí)啟動(dòng)抚垃,不然會(huì)報(bào)錯(cuò)
卡夫卡消息讀取的客戶端