Windows安装Kafka(kafka_2.12-3.9.1),配置Kafka,以及遇到的问题解决方案
目录
下载 Kafka
依赖项
安装
配置日志目录
修改配置文件
初始化存储目录
小插曲
启动 Kafka
验证 Kafka 是否正常工作
下载 Kafka
访问 Apache Kafka 官网,选择 Binary Downloads,下载 kafka_2.13-4.0.0.tgz
(支持 Windows/Linux)。
依赖项
Kafka 4.0 基于 JDK 17 编译,需提前安装并配置 JAVA_HOME
环境变量。
安装
将压缩包解压至短路径目录(如:E:\Kafka)
配置日志目录
创建 Kafka 日志目录(如 E:\Kafka\data\kafka\kafka-logs
)。
修改配置文件
打开 config\server.properties
,修改以下关键参数:
# 日志路径(使用双反斜杠)
log.dirs=E:\\Kafka\\data\\kafka\\kafka-logs
初始化存储目录
生成集群 ID:
// 进入目录:E:\Kafka\kafka\bin\windows下
// 输入命令
kafka-storage.bat random-uuid
输出示例如下:
上述日志中有个错误提示可以忽略。记录此ID:JnhYFIOcRXipOJdyvUlVcA
打开 config\server.properties
,增加以下关键参数:
# 集群唯一标识(之前生成的 UUID)
cluster.id=JnhYFIOcRXipOJdyvUlVcA# 控制器选举配置(单机模式示例)
controller.quorum.voters=1@localhost:9093
Kafka 4.0 默认使用 KRaft 模式(Kafka Raft Metadata),取代了旧版的 ZooKeeper。在 KRaft 模式下,controller.quorum.voters
是必需配置,用于指定集群的控制器节点。
格式化日志目录:
// 进入目录:E:\Kafka\kafka\bin\windows下
kafka-storage.bat format -t JnhYFIOcRXipOJdyvUlVcA -c ..\..\config\kraft\server.properties
表明 Kafka 存储格式化成功
小插曲
这个错误表明您正在尝试使用 KRaft 模式格式化存储,但配置文件是针对 旧版的 Zookeeper 模式的。Kafka 从 3.0 版本开始引入了 KRaft 模式(不再需要 Zookeeper)。
所以应该使用kraft版本的配置文件
# 使用 kraft 版本的配置文件
kafka-storage.bat format -t JnhYFIOcRXipOJdyvUlVcA -c ..\..\config\kraft\server.properties
启动 Kafka
在 bin\windows
目录下执行:
kafka-server-start.bat ..\..\config\kraft\server.properties
成功标志:日志输出如下内容且无致命错误:
验证 Kafka 是否正常工作
新开两个cmd窗口
#创建一个名为 test-topic 的主题:
E:\Kafka\kafka\bin\windows>kafka-topics.bat --create --topic test-topic --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092
#验证刚刚创建的主题是否正确添加:
E:\Kafka\kafka\bin\windows>kafka-topics.bat --list --bootstrap-server localhost:9092
test-topic
#发送和接收消息
E:\Kafka\kafka\bin\windows>kafka-console-producer.bat --bootstrap-server localhost:9092 --topic test-topic
>Hello Kafka
>this is a test message
>i am codesandwich
#在另一个cmd窗口
E:\Kafka\kafka\bin\windows>kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test-topic --from-beginning
Hello Kafka
this is a test message
i am codesandwich
圆满成功!!!
如果我的内容对你有帮助,请辛苦动动您的手指为我点赞,评论,收藏。感谢大家!!