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

Kafka集群中2个分区无法写入消息的问题求助

Kafka分区写入异常排查方案

以下是针对0、3号分区无消息写入问题的具体排查步骤:

  • 检查Producer分区策略与发送逻辑

    • 确认是否使用自定义分区器:查看Producer代码或配置,若自定义了分区逻辑,检查是否存在跳过0、3分区的错误逻辑;
    • 验证key的哈希分布:若发送消息时指定了key,计算key的哈希值对应的分区,确认是否所有key的哈希都未命中0、3分区;
    • 检查是否手动指定了分区:查看Producer发送代码,是否在创建ProducerRecord时固定指定了1、2、4、5号分区。
  • 查看分区状态与元数据

    • 执行命令查看Topic分区详情:
      kafka-topics.sh --describe --topic <你的Topic名称> --bootstrap-server <Broker地址>:9092
      
      重点确认0、3分区的Leader节点、ISR列表是否正常,是否存在Offline: true等异常状态;
    • 检查分区副本同步状态:确认0、3分区的所有副本是否处于同步状态,若存在副本滞后过多,可能影响Producer写入。
  • 排查Producer端日志

    • 开启Producer的DEBUG级别日志(修改log4j配置:log4j.logger.org.apache.kafka.clients.producer=DEBUG),查看发送消息时针对0、3分区的日志,是否存在发送失败、重试或被跳过的记录。
  • 检查Broker端分区限制

    • 查看Topic或分区的配额配置:
      kafka-configs.sh --describe --topic <你的Topic名称> --bootstrap-server <Broker地址>:9092
      
      确认0、3分区是否被设置了写入配额(如producer_byte_rate)或其他限制策略,导致无法写入。
  • 验证分区写入能力

    • 使用命令行Producer直接向0、3分区发送测试消息:
      kafka-console-producer.sh --broker-list <Broker地址>:9092 --topic <你的Topic名称> --property "parse.key=true" --property "key.separator=:"
      
      输入消息时指定能命中0、3分区的key,验证是否能正常写入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 16:16:13