思路:
先在主机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 - $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 完全分布式集群环境搭建
.