Kafka3.x 使用 KRaft 模式部署 不依赖 ZooKeeper
前言
Kafka 从 2.8.0 版本开始引入了 Kafka Raft Metadata Mode(KRaft 模式),这个模式允许 Kafka 在不依赖 ZooKeeper 的情况下进行元数据管理。KRaft 模式在 Kafka 3.0.0 中进入了稳定版本,本文部署的 Kafka_2.12-3.6.0 单机模式
环境
CentOS 7.9
Java JDK 17
1.下载和解压 Kafka
wget https://archive.apache.org/dist/kafka/3.6.0/kafka_2.12-3.6.0.tgz
tar -xzf kafka_2.12-3.6.0.tgz
cd kafka_2.12-3.6.0/
2. 配置 Kafka 使用 KRaft 模式
2.1 修改 Kafka 的配置文件 config/kraft/server.properties
vim config/kraft/server.properties
# 设置 Kafka 数据日志存储目录
log.dirs=/data/kafka/kafka-logs
2.2 生成数据目录ID:
bin/kafka-storage.sh random-uuid
命令格式化数据目录,–cluster-id (上一步的数据目录ID)
bin/kafka-storage.sh format --config config/kraft/server.properties --cluster-id maE6YugNQHWt9u0xK1XA2A
3. 启动 和 停止 Kafka
3.1启动
Kafka 3.0.0 及之后的版本 ,可以使用以下命令来启动 Kafka:
bin/kafka-server-start.sh -daemon config/kraft/server.properties
3.2停止
bin/kafka-server-stop.sh -daemon config/kraft/server.properties
4. 验证 Kafka 是否正常运行
bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
如果配置和启动正确,能看到一个空的主题列表(因为没有创建任何主题)。
5. 创建一个测试主题
bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic test --partitions 1 --replication-factor 1
6. 生产和消费消息
测试生产和消费消息来验证 Kafka 是否工作正常:
生产消息:
bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test
在命令行中输入消息并按回车。
消费消息:
新的终端执行
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
至此 部署完成。