Kafka集群搭建
配置zookeeper
cd /usr/local/kafka_2.13-3.1.0
mkdir data
修改Zookeeper配置文件zookeeper.properties
dataDir=/usr/local/kafka_2.13-3.1.0/data
tickTime=2000
initLimit=10
syncLimit=5
server.1=192.168.1.252:2888:3888
server.2=192.168.1.253:2888:3888
server.3=192.168.1.254:2888:3888
根据broker的编号,为其生成相应的myid文件。
broker1
cd /usr/local/kafka_2.13-3.1.0/data
echo 1 > myid
broker2
cd /usr/local/kafka_2.13-3.1.0/data
echo 2 > myid
broker3
cd /usr/local/kafka_2.13-3.1.0/data
echo 3 > myid
设置防火墙以允许2181、2888、3888的访问。
firewall-cmd --permanent --add-port=2181/tcp
firewall-cmd --permanent --add-port=2888/tcp
firewall-cmd --permanent --add-port=3888/tcp
systemctl restart firewalld
启动zookeepr服务器
cd /usr/local/kafka_2.13-3.1.0/
bin/zookeeper-server-start.sh config/zookeeper.properties
配置kafka
根据broker的编号,修改server.properties。
broker1
broker.id=1
listeners=PLAINTEXT://192.168.1.252:9092
zookeeper.connect=192.168.1.252:2181,192.168.1.253:2181,192.168.1.254:2181
broker2
broker.id=2
listeners=PLAINTEXT://192.168.1.253:9092
zookeeper.connect=192.168.1.252:2181,192.168.1.253:2181,192.168.1.254:2181
broker3
broker.id=3
listeners=PLAINTEXT://192.168.1.254:9092
zookeeper.connect=192.168.1.252:2181,192.168.1.253:2181,192.168.1.254:2181
复制代码
防火墙开放9092端口。
firewall-cmd --permanent --add-port=9092/tcp
systemctl restart firewalld
启动kafka server
cd /usr/local/kafka_2.13-3.1.0/
bin/kafka-server-start.sh config/server.properties
集群测试
首先尝试在一台服务器上创建topic,然后在其他的服务器上看看是否可以查看该topic的相关信息。
broker1
cd /usr/local/kafka_2.13-3.1.0/
bin/kafka-topics.sh --create --topic mytopic --bootstrap-server 192.168.1.252:9092
broker2
cd /usr/local/kafka_2.13-3.1.0/
bin/kafka-topics.sh --describe --topic mytopic --bootstrap-server 192.168.1.253:9092
broker3
cd /usr/local/kafka_2.13-3.1.0/
bin/kafka-topics.sh --describe --topic mytopic --bootstrap-server 192.168.1.254:9092
接着进行producer+consumer测试,分别在3台服务器上启动2个producer和1个consumer,看看两台服务器上生产的消息是否可以被另一台消费。
broker1
bin/kafka-console-producer.sh --topic mytopic --bootstrap-server 192.168.1.252:9092
broker2
bin/kafka-console-producer.sh --topic mytopic --bootstrap-server 192.168.1.253:9092
复制代码
broker3
bin/kafka-console-consumer.sh --topic mytopic --from-beginning --bootstrap-server 192.168.1.254:9092
到此,一个简略版本的kafka集群就已经搭建完成。kafka还有很多配置的细节,有许多需要根据业务需求进行个人化的调整,后续再进行深入了解。