准备3台服务器,并配置hosts
172.17.0.2 node0
172.17.0.3 node1
172.17.0.4 node2
在其中一台服务器中搭建Zookeeper(单机或集群都可以)
下载Kafka
wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/3.2.0/kafka_2.13-3.2.0.tgz
解压压缩包
tar xf kafka_2.13-3.2.0.tgz
修改名称
mv kafka_2.13-3.2.0 kafka
修改配置文件
cd kafka/
vi config/server.properties
node0配置
#broker.id属性在kafka集群中必须要是唯一
broker.id=0
#向生产者和消费者发布主机名和端口,外网访问时配置,内网访问设置listeners就行了
advertised.listeners=PLAINTEXT://node0:9092
#Zookeeper连接地址,将broker部署成集群,该连接必须相同
zookeeper.connect=node0:2181,node0:2182,node0:2183/kafka
node1配置
#broker.id属性在kafka集群中必须要是唯一
broker.id=1
#向生产者和消费者发布主机名和端口,外网访问时配置,内网访问设置listeners就行了
advertised.listeners=PLAINTEXT://node1:9092
#Zookeeper连接地址,将broker部署成集群,该连接必须相同
zookeeper.connect=node0:2181,node0:2182,node0:2183/kafka
node2配置
#broker.id属性在kafka集群中必须要是唯一
broker.id=2
#向生产者和消费者发布主机名和端口,外网访问时配置,内网访问设置listeners就行了
advertised.listeners=PLAINTEXT://node2:9092
#Zookeeper连接地址,将broker部署成集群,该连接必须相同
zookeeper.connect=node0:2181,node0:2182,node0:2183/kafka
三台服务器中都启动Kafka
nohup bin/kafka-server-start.sh config/server.properties > kafka.log &
创建topic
bin/kafka-topics.sh --bootstrap-server node1:9092,node2:9092,node0:9092 --create --topic test --partitions 3 --replication-factor 3
生产消息
bin/kafka-console-producer.sh --broker-list node0:9092 --topic test
消费消息
bin/kafka-console-consumer.sh --bootstrap-server node0:9092 --topic test --from-beginning