以下是使用三个节点部署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,并且 listenershostname应该分别为node1node2node3

3. 初始化存储目录

在每个节点上执行以下命令,初始化KRaft元数据目录:

bin/ format -t <uuid> -c config/kraft/server.properties

其中,<uuid> 可以使用 uuidgen 命令生成。例如:

uuidgen

确保在所有节点上使用相同的UUID。

4. 启动Kafka

在每个节点上分别启动Kafka服务:

cd /usr/local/kafka
bin/ 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/ --topic test-topic --bootstrap-server node1:9092

然后输入一些消息,如“Hello Kafka”。

  • 创建消费者:
bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server node1:9092

你应该会看到生产者发送的消息显示在消费者的控制台中。