kafka_2.13-3.2.0集群部署
安装jdk
准备三台主机,每台host配置为(可略):
192.168.19.31 node1
192.168.19.34 node2
192.168.19.35 node3
分别在每台主机下载kafka
wget https://www.apache.org/dyn/closer.cgi?path=/kafka/3.2.0/kafka_2.13-3.2.0.tgz
tar zxvf kafka_2.13-3.2.0.tgz
修改配置文件(server.properties)
- node1
broker.id=0 #保证唯一
listeners=PLAINTEXT://node1:9092 # 配置集群时,必须设置,不然后续操作会报找不到leader的错误
zookeeper.connect=node1:2181,node2:2181,node3:2181/kafka
- node2
broker.id=1
listeners=PLAINTEXT://node2:9092
zookeeper.connect=node1:2181,node2:2181,node3:2181/kafka
- node3
broker.id=2
listeners=PLAINTEXT://node3:9092
zookeeper.connect=node1:2181,node2:2181,node3:2181/kafka
说明
PLAINTEXT => PLAINTEXT 不需要授权,非加密通道
SSL => SSL 使用SSL加密通道
SASL_PLAINTEXT => SASL_PLAINTEXT 使用SASL认证非加密通道
SASL_SSL => SASL_SSL 使用SASL认证并且SSL加密通道
启动
- 先启动zookeeper
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
- 再启动
bin/kafka-server-start.sh -daemon config/server.properties
测试(进入bin目录)
- 在node1上执行创建主题命令
./kafka-topics.sh --create --bootstrap-server node1:9092 --replication-factor 3 --partitions 1 --topic test123
- 在node1、node2、node3上查看主题,示例:
./kafka-topics.sh --bootstrap-server node2:9092 --list
可以看到三台主机都有该主题了
- 启动消费者控制台
./kafka-console-consumer.sh --bootstrap-server node2:9092 --topic test123
- 启动生产者控制台,并发送消息
./kafka-console-producer.sh --bootstrap-server node3:9092 --topic test123
效果图
- 生产者(node3)
- 消费者(node2)