You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kafka启动及创建主题报错:缺失必填配置process.roles

Kafka启动与主题创建故障排查与解决

问题现象

  • 执行brew services list显示Kafka已启动,但实际服务未正常运行
  • 创建主题时抛出错误:could not be established. Node may not be available. (org.apache.kafka.clients.NetworkClient)
  • 手动执行启动命令kafka-server-start /opt/homebrew/etc/kafka/server.properties时,出现致命异常,日志如下:
[2025-06-23 00:30:24,766] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
[2025-06-23 00:30:24,845] ERROR Exiting Kafka due to fatal exception (kafka.Kafka$)
org.apache.kafka.common.config.ConfigException: Missing required configuration "process.roles" which has no default value.
    at org.apache.kafka.common.config.ConfigDef.parseValue(ConfigDef.java:534) ~[kafka-clients-4.0.0.jar:?]
    at org.apache.kafka.common.config.ConfigDef.parse(ConfigDef.java:524) ~[kafka-clients-4.0.0.jar:?]
    at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:115) ~[kafka-clients-4.0.0.jar:?]
    at kafka.server.config.AbstractKafkaConfig.<init>(AbstractKafkaConfig.java:72) ~[kafka-server-4.0.0.jar:?]
    at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:156) ~[kafka_2.13-4.0.0.jar:?]
    at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:159) ~[kafka_2.13-4.0.0.jar:?]
    at kafka.Kafka$.buildServer(Kafka.scala:65) ~[kafka_2.13-4.0.0.jar:?]
    at kafka.Kafka$.main(Kafka.scala:75) [kafka_2.13-4.0.0.jar:?]
    at kafka.Kafka.main(Kafka.scala) [kafka_2.13-4.0.0.jar:?]

故障原因

Kafka 4.0及以上版本默认启用KRaft模式替代ZooKeeper,该模式要求必须配置process.roles、node.id和controller.quorum.voters三个核心参数,否则无法启动服务。

解决步骤

1. 修改Kafka配置文件

打开配置文件/opt/homebrew/etc/kafka/server.properties,添加以下配置:

# 单节点部署同时承担broker和controller角色
process.roles=broker,controller
# 设置唯一节点ID,单节点场景设为1即可
node.id=1
# 配置controller集群投票地址,单节点用localhost:9093
controller.quorum.voters=1@localhost:9093

同时确保listeners配置包含CONTROLLER监听器:

listeners=PLAINTEXT://localhost:9092,CONTROLLER://localhost:9093
listener.security.protocol.map=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT

2. 初始化KRaft元数据(首次启动必须执行)

执行命令生成随机集群ID并格式化存储:

kafka-storage format -t $(kafka-storage random-uuid) -c /opt/homebrew/etc/kafka/server.properties

3. 重启Kafka服务

先停止当前服务:

brew services stop kafka

再启动服务:

brew services start kafka

也可以手动启动验证:

kafka-server-start /opt/homebrew/etc/kafka/server.properties

4. 验证服务可用性

执行以下命令检查Kafka是否正常运行:

kafka-topics --list --bootstrap-server localhost:9092

若命令无报错返回,说明服务已恢复,此时可正常创建主题。

内容的提问来源于stack exchange,提问作者amit perane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 20:05:20