思路:
先在主機s1上安裝配置,然后遠程復制到其它兩台主機s2、s3上,
並分別修改配置文件server.properties中的broker.id屬性。
1、 搭建前准備
示例共三台主機,主機IP映射信息如下:
192.168.32.101 s1 192.168.32.102 s2 192.168.32.103 s3
搭建ZooKeeper 集群,搭建步驟參考:
https://www.cnblogs.com/jonban/p/zookeeper.html
2、下載 Kafka
下載地址:
https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.2.0/kafka_2.12-2.2.0.tgz
3、解壓到 /opt 下
tar -zxvf kafka_2.12-2.2.0.tgz -C /opt/
4、配置
進入到安裝目錄
cd /opt/kafka_2.12-2.2.0/
創建日志文件目錄
mkdir logs
修改配置文件 config/server.properties
vi /opt/kafka_2.12-2.2.0/config/server.properties
修改以下屬性配置
broker.id=1
log.dirs=/opt/kafka_2.12-2.2.0/logs
zookeeper.connect=s1:2181,s2:2181,s3:2181
5、遠程復制到其它兩台主機s2,s3上
scp -r /opt/kafka_2.12-2.2.0/ root@s2:/opt/
scp -r /opt/kafka_2.12-2.2.0/ root@s3:/opt/
登錄主機s2
ssh s2
vi /opt/kafka_2.12-2.2.0/config/server.properties
修改 config/server.properties 中的 broker.id=2
broker.id=2
登錄主機s3
ssh s3
vi /opt/kafka_2.12-2.2.0/config/server.properties
修改 config/server.properties 中的 broker.id=3
broker.id=3
6、配置三台主機環境變量
vi /etc/profile
添加如下內容:
export KAFKA_HOME=/opt/kafka_2.12-2.2.0
export PATH=$PATH:$KAFKA_HOME/bin
使用source命令使配置立即生效
source /etc/profile
7、啟動
啟動ZooKeeper 集群
zkServer.sh start
啟動Kafka
kafka-server-start.sh -daemon /opt/kafka_2.12-2.2.0/config/server.properties
8、查看狀態
在三台主機上分別輸入 jps 命令,查看集群狀態,內容如下:
[root@s1 ~]# jps
2852 QuorumPeerMain
3180 Kafka
[root@s2 ~]# jps
2788 QuorumPeerMain
3433 Kafka
[root@s3 ~]# jps
2791 QuorumPeerMain
3128 Kafka
啟動正常!
9、測試
創建主題
kafka-topics.sh --create --zookeeper s1:2181,s2:2181,s3:2181 --replication-factor 3 --partitions 3 --topic test
查看主題列表
kafka-topics.sh --list --zookeeper s1:2181,s2:2181,s3:2181
生產者
kafka-console-producer.sh --broker-list s1:9092,s2:9092,s3:9092 --topic test
消費者
kafka-console-consumer.sh --bootstrap-server s1:9092,s2:9092,s3:9092 --from-beginning --topic test
10、停止kafka服務器,自帶kafka-server-stop.sh 腳本無法正常停止,重寫停止腳本,內容如下:
#!/bin/sh PIDS=$(ps -ef | grep java | grep kafka | grep -v grep | awk '{print $2}') for PID in $PIDS do kill -9 $PID done echo -e "Stop Finished!\n"
執行停止腳本
kafka-server-stop.sh
11、Spring boot 集成Kafka
參考:https://www.cnblogs.com/jonban/p/spring-kafka.html
Kafka 完全分布式集群環境搭建
.