Pac*_*ist 6 apache-kafka kafka-producer-api
我有一个有 10 个分区的主题,1 个消费者组有 4 个消费者,工作人员大小为 3。
我可以看到分区中的消息分布不均匀,一个分区有很多数据,另一个是免费的。
如何让我的生产者将负载平均分配到所有分区,以便所有分区都得到正确利用?
tom*_*kab 11
根据 DefaultPartitioner 类本身的 JavaDoc 注释,默认的分区策略是:
因此,这里有两个可能导致分布不均的原因,具体取决于您在生成消息时是否指定了密钥:
如果您指定了一个键并且使用 DefaultPartitioner 得到了不均匀分布,最明显的解释是您多次指定相同的键。
如果您未指定键并使用 DefaultPartitioner,则可能会发生不明显的行为。根据上面的内容,您会期望消息的循环分发,但这不一定是这种情况。0.8.0 中引入的优化可能会导致使用相同的分区。检查此链接以获得更详细的解释:https : //cwiki.apache.org/confluence/display/KAFKA/FAQ#FAQ-Whyisdatanoteevenlydistributedamongpartitionswhenapartitioningkeyisnotspecified?.
| 归档时间: |
|
| 查看次数: |
5320 次 |
| 最近记录: |