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

为何kafka-console-producer仅向1个分区写入而非轮询(Topic含3分区)

Kafka 3.3.2生产者仅写入Partition 0的原因分析

以下是几种可能导致所有消息仅写入Partition 0的常见原因:

  • 启动控制台生产者时指定了固定分区
    如果使用kafka-console-producer.sh时添加了--partition 0参数,所有消息会被强制路由到指定的Partition 0。检查你的启动命令,确认是否存在该参数,比如:

    kafka-console-producer.sh --bootstrap-server localhost:9092 --topic your_topic --partition 0
    

    若存在此参数,去掉后即可恢复正常的分区路由逻辑。

  • 所有消息使用相同Key且哈希结果指向Partition 0
    如果你在发送消息时指定了相同的Key(比如通过--property parse.key=true和--property key.separator=传入固定Key),默认分区器会基于Key的哈希值对分区数取模计算目标分区。若所有Key的哈希结果对3取模等于0,所有消息都会进入Partition 0。可以检查是否为所有消息设置了相同的Key。

  • 自定义分区器导致固定路由
    如果在生产者配置中通过--property partitioner.class指定了自定义分区器,且该分区器的逻辑将所有消息都路由到Partition 0,也会出现此问题。需要确认是否配置了此类自定义分区实现。

  • 生产者元数据未及时更新(罕见)
    虽然你已看到Topic的三个分区文件夹,但生产者客户端可能未及时获取到最新的Topic元数据,导致仅识别到Partition 0。这种情况可通过重启生产者客户端验证,若重启后消息能分发到其他分区,则说明是元数据更新延迟问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:50:10