【发布时间】:2021-07-06 05:29:19
【问题描述】:
Kafka 批处理中的所有消息都必须转到同一个分区吗?
或者是否可以将消息(应该去不同的分区)一起批量处理?
【问题讨论】:
标签: apache-kafka kafka-producer-api batching
Kafka 批处理中的所有消息都必须转到同一个分区吗?
或者是否可以将消息(应该去不同的分区)一起批量处理?
【问题讨论】:
标签: apache-kafka kafka-producer-api batching
这取决于生产者的分区分配算法。 默认为 RoundRobin,因此它将在分区之间平均分配。
您可以为批处理中的每条记录传递一个键,然后将为每个键执行一个默认的哈希函数,代理将把记录放在哈希函数返回的分区中。
你也可以重写散列函数,自己写一个。
否则,如果您的 Kafka 客户端支持,您可以为每个记录显式传递分区。
但您不必按分区对消息进行分组 - 只需按主题。
【讨论】: