以下是使用三个节点部署Kafka集群的步骤指南(基于Kafka 3.9.0),在KRaft模式下运行,避免使用Zookeeper。
示例:在KRaft模式下部署Kafka集群(基于Kafka 3.9.0)
1. 下载Kafka
从Kafka的官方网站下载最新版本的Kafka(例如kafka_3.9.0)并在每个节点上解压安装。
2. 配置每个节点
在每个节点上配置Kafka,以启用KRaft模式:
-
修改配置文件
server.properties
,以下是配置文件示例:process.roles=broker,controller node.id=1 # 对于第一个节点 controller.quorum.voters=1@node1:9093,2@node2:9093,3@node3:9093 listeners=PLAINTEXT://node1:9092,CONTROLLER://node1:9093 log.dirs=/var/lib/kafka-logs
对于每个节点,
node.id
应该分别为 1, 2 和 3,并且listeners
的hostname
应该分别为node1
、node2
和node3
。
3. 初始化存储目录
在每个节点上执行以下命令,初始化KRaft元数据目录:
bin/kafka-storage.sh format -t <uuid> -c config/kraft/server.properties
其中,<uuid>
可以使用 uuidgen
命令生成。例如:
uuidgen
确保在所有节点上使用相同的UUID。
4. 启动Kafka
在每个节点上分别启动Kafka服务:
cd /usr/local/kafka
bin/kafka-server-start.sh config/kraft/server.properties
5. 创建Topic
可以在任意一个节点上使用Kafka提供的命令行工具创建一个Topic,例如名为test-topic
:
bin/kafka-topics.sh --create --topic test-topic --bootstrap-server node1:9092 --partitions 1 --replication-factor 3
6. 生产和消费数据
测试生产者和消费者:
-
创建生产者:
bin/kafka-console-producer.sh --topic test-topic --bootstrap-server node1:9092
然后输入一些消息,如“Hello Kafka”。
-
创建消费者:
bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server node1:9092
你应该会看到生产者发送的消息显示在消费者的控制台中。