完全没有用zookeeper而是采用kafka原生的KRaft部署(4.0版本摆脱了zookeeper的依赖)。全程window,没有用docker(几个加速镜像全失效了,最近就没怎么用),不保证100%成功,本人也是摸石头过河,如果有错欢迎指正:

kafka4.0---启动。修改配置:

4.0完全丢弃了zookeeper的依赖(不过是用zookeeper也能用,现在zookeeper相关的配置文件与KRaft模式的配置文件好像是共用的,本人菜鸟没试过),本文是在完全的window系统中安装的,如果有linux环境或者主机上有docker也可以用,官网上有完整的教程,但是没有windows的--搞了好久才搞好。哭

官网网址:

下载:    https://kafka.apache.org/downloads
文档:    https://kafka.apache.org/documentation/#quickstart

最好下载二进制版本-能够快速上手:

保证config\server.properties中:

process.roles=controller,broker
node.id=1
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
controller.listener.names=CONTROLLER  
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT  
controller.quorum.voters=1@localhost:9093
log.dirs=D:\\kafka_4.0\\kafka_2.13-4.0.0\\logs
num.partitions=1        

保证这个路径存在,不存在自己创建:

log.dirs=D:\\kafka_4.0\\kafka_2.13-4.0.0\\logs

Kafka 4.0 安装配置全流程总结(Windows 环境)

1. 初始准备
  • 下载二进制包 确认下载的是官方二进制包(如 kafka_2.13-4.0.0.tgz),而非源码包。

  • 安装 JDK 17 卸载 JDK 20,安装 JDK 17 并配置环境变量:

    cmd

    复制

    set JAVA_HOME=D:\JDKS\JDK17
    set PATH=%JAVA_HOME%\bin;%PATH%
2. 解压与目录结构
  • 解压到 D:\kafka_4.0\kafka_2.13-4.0.0,确保路径无空格或中文。

  • 关键目录:

    • bin\windows:脚本文件

    • config:配置文件

    • logs(需手动创建):数据存储目录

3. 必要配置修改
(1) 修改 config/server.properties!!最好把文件中的中文注解删除,可能会有编码错误

properties

复制

# KRaft 模式核心配置
process.roles=controller,broker
node.id=1
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
controller.listener.names=CONTROLLER
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
controller.quorum.voters=1@localhost:9093
log.dirs=D:\\kafka_4.0\\kafka_2.13-4.0.0\\logs  # 使用双反斜杠或正斜杠
num.partitions=1
(2) 配置 Log4j 2.x
  • 复制模板并重命名:(这一步不需要,亲测两个yaml都可以)

    cmd

    复制

    copy config\tool-log4j2.yaml config\log4j2.yaml
  • 删除旧版 Log4j 1.x 配置(如果config目录下由 log4j.properties这种文件就删除,没有则不用管)。

4. 初始化存储目录

cmd命令行中

先进入你的bin\window目录,然后启动命令行

cd D:\kafka_4.0\kafka_2.13-4.0.0\bin\windows
kafka-storage.bat random-uuid  # 生成集群ID(如 ABC123...)
kafka-storage.bat format -t ABC123... -c ..\..\config\server.properties
  • 验证:检查 D:\kafka_4.0\kafka_2.13-4.0.0\logs 是否生成 meta.properties__cluster_metadata-0

  • 这一步很可能报错:但没影响-这是long4j日志报的错:warning。。。什么的,只要检查你的logs目录下有没有生成新的东西就行

5. 启动 Kafka

cmd

第二个参数:“server.properties的路径务必注意,..\表示上一级。请根据你的目录具体更改”

kafka-server-start.bat ..\..\config\server.properties
  • 成功标志:日志输出 [KafkaRaftServer] started 且无致命错误。:

  • 这种错误完全正常:

  • 正确结果:日志输出没有ERROR且打印了好几行,最后一行:

检查你的logs目录下有没有这个文件:

有了就成功了

6. 测试功能

新开一个cmd,还是进入windows目录

# 创建 Topic
kafka-topics.bat --create --bootstrap-server localhost:9092 --topic test

# 生产消息
kafka-console-producer.bat --bootstrap-server localhost:9092 --topic test

# 消费消息
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
7. 关机与重启
  • 关机:按 Ctrl+C 停止 Kafka。

  • 重启:直接运行 kafka-server-start.bat,无需再次初始化。

  • 持久化:确保不删除 logs 目录下的文件。


关键注意事项

  1. 路径一致性:所有配置中的路径使用绝对路径,避免混用 /\

  2. 端口冲突:确保 9092(Broker)和 9093(Controller)未被占用。

  3. 权限问题:赋予 logs 目录完全控制权限。

  4. 日志警告

    • Reconfiguration failed:Log4j 内部警告,可忽略。

    • DEPRECATED: Log4j 1.x:已迁移到 Log4j 2.x,无需处理。


常见问题速查

问题现象解决方案
启动时报 meta.properties not found重新执行 kafka-storage.bat format
端口冲突修改 server.properties 中的 listeners 端口
Java 版本错误检查 java -version 是否为 JDK 17
日志目录未生成检查 log.dirs 路径权限和拼写

按此流程操作后,Kafka 将保持持久化状态,重启后无需重复配置。

下一次重启:只需要输入:

kafka-server-start.bat ..\..\config\server.properties
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐