Windows环境下Kafka向MCHVAS主题发消息超时报错求助
Kafka生产者发送消息超时问题解决
问题重现
Windows环境下执行Kafka生产者命令发送消息到主题MCHVAS:
kafka-console-producer.bat --broker-list localhost:9092 --topic MCHVAS >mamma mia
触发超时错误:
[2023-09-24 14:06:17,510] ERROR Error when sending message to topic MCHVAS with key: null, value: 9 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for MCHVAS-0:120012 ms has passed since batch creation
环境信息
Kafka服务器配置
listeners=PLAINTEXT://:9092 advertised.listeners=PLAINTEXT://localhost:9092
主题详情
执行描述命令输出:
C:\Apache\kafka_2.13-3.5.1\bin\windows>kafka-topics.bat --describe --bootstrap-server localhost:9092 --topic MCHVAS Topic: MCHVAS TopicId: 2TMVGbecTdq3SuR-kK6R8A PartitionCount: 1 ReplicationFactor: 1 Configs: Topic: MCHVAS Partition: 0 Leader: none Replicas: 0 Isr: 0
主题列表输出:
C:\Apache\kafka_2.13-3.5.1\bin\windows>kafka-topics.bat --list --bootstrap-server localhost:9092 MCHVAS __consumer_offsets
核心原因
从主题描述结果可直接判定:主题MCHVAS的分区0没有可用的Leader节点,虽然副本(Replicas)和同步副本集(ISR)标注为0,但该副本并未处于运行状态。这说明Kafka Broker未正常启动,或者主题创建后Broker未完成分区Leader的选举流程。
解决步骤
确认Kafka Broker运行状态
- 查看启动Kafka的终端窗口,检查是否有启动失败的报错信息。
- 若Broker未启动,先启动ZooKeeper(默认依赖),再启动Broker:
# 启动ZooKeeper zookeeper-server-start.bat ..\..\config\zookeeper.properties # 启动Kafka Broker kafka-server-start.bat ..\..\config\server.properties
等待Leader选举完成
Broker启动后,等待1-2分钟让Kafka完成分区Leader选举,再次执行主题描述命令:kafka-topics.bat --describe --bootstrap-server localhost:9092 --topic MCHVAS当输出中
Leader和Isr字段均显示为0时,说明Leader已正常就位。重新测试消息发送
再次运行生产者命令,确认消息能正常发送。
备选方案(若上述步骤无效)
- 删除现有主题并重新创建:
kafka-topics.bat --delete --bootstrap-server localhost:9092 --topic MCHVAS kafka-topics.bat --create --bootstrap-server localhost:9092 --topic MCHVAS --partitions 1 --replication-factor 1 - 检查
server.properties中的log.dirs配置,确保该目录存在且拥有读写权限,避免因日志目录异常导致Broker无法加载分区。
内容的提问来源于stack exchange,提问作者Andrea Rosin
相关产品推荐
相关产品推荐

