在 Kafka 中批处理

问题描述

Kafka 批处理中的所有消息都必须转到同一个分区吗?

或者是否可以将消息(应该发送到不同的分区)一起批处理?

解决方法

这取决于生产者的分区分配算法。 默认为 RoundRobin,因此它将在分区之间平均分配。

您可以为批处理中的每条记录传递一个键,然后将为每个键执行默认的散列函数,代理会将记录放入从散列函数返回的分区中。

您也可以覆盖哈希函数并自己编写一个。

否则,如果您的 Kafka 客户端支持,您可以明确地为每个记录传递分区。

但您不必按分区对消息进行分组 - 只需按主题即可。