kafka:编写自定义分区器还是只使用密钥?

dsekswqp  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(326)

所以我有一个Kafka主题,有多个分区,我在上面生成消息。我希望根据用户id对消息进行分区。我可以通过使用用户id作为消息键或编写自定义分区器来实现这一点。我如何找出正确的解决方案,利弊如何?

qzlgjiam

qzlgjiam1#

如您所知,使用用户id作为密钥,您可以确定具有相同用户id的消息将始终传递到同一分区,但您不能确定分区本身。我的意思是,默认分区程序会处理一个哈希值,该哈希值是分区数的%number,以获得目标分区。如果在应用程序中需要将具有特定用户标识的消息转到特定分区(即,希望该用户标识以“a”开头转到分区0),则需要编写自定义分区器。如果您没有限制,我认为使用userid作为键的默认分区器对您来说很好。在任何情况下,在发送和接收之后,您都会得到有关分区的信息。

相关问题