使用Kafkacat搭建Kafka生产消费环境时报未知主题或分区错误
Kafka消费者「Broker: Unknown topic or partition」报错排查方案
前置说明
该报错本质是Kafka broker上不存在你请求的topic1主题,按以下步骤逐一排查即可:
排查步骤
- 确认主题是否已创建
首先执行命令列出当前Kafka所有存在的主题:kafka-topics --list --bootstrap-server localhost:9092
如果返回结果中没有topic1,说明主题未创建,可以手动执行命令创建:kafka-topics --create --topic topic1 --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
- 确认主题是否已创建
- 确认服务运行状态正常
执行命令检查brew托管的服务状态:brew services list
确保zookeeper和kafka两个服务的状态均为started,无报错。如果状态异常可以先重启服务:
服务重启后等待10秒待进程完全初始化,再重试操作brew services restart zookeeper brew services restart kafka- 确认服务运行状态正常
- 检查自动创建主题配置(可选)
如果你希望发送消息时自动创建主题,不需要每次手动创建,可以修改kafka配置文件:
- Intel芯片Mac配置路径:
/usr/local/etc/kafka/server.properties - M系列芯片Mac配置路径:
/opt/homebrew/etc/kafka/server.properties
找到auto.create.topics.enable配置项,将值修改为true,保存后重启kafka服务即可生效
- 检查自动创建主题配置(可选)
- 确认生产者消息提交操作正确
你使用kcat -P -b localhost:9092 -t topic1启动生产者后,输入hello内容后需要按下Ctrl+D触发消息提交,如果你没有执行提交操作直接关闭终端,消息不会发送,开了自动创建主题的前提下也不会生成对应的主题
- 确认生产者消息提交操作正确
验证方案
所有配置调整完成后,先重新运行生产者发送hello消息,再执行消费者命令:kcat -C -b localhost:9092 -t topic1 -o beginning
即可正常拉取到发送的hello消息,不会再抛出未知主题报错
内容的提问来源于stack exchange,提问作者arush saxena
相关产品推荐
相关产品推荐

