kafka分区中数据均匀分布的分区技术

azpvetkf  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(513)

我有下面的场景,我有多个大文件(每个记录约2亿),我想通过Kafka发送该文件。为了获得更好的性能,我想使用kafka分区来发送数据。现在我的数据要求是一个特定的键,所有的消息都应该转到一个特定的分区。目前对于poc,我使用10个kafka分区,并使用一个数字id字段对数据进行分区。我的逻辑只是检查它的最后一个数字,并将记录发送到相应的Kafka分区。前任: ID -***7 将始终转到分区7。现在这个逻辑不能用来概括我的代码,因为键可以是非数字的,分区的数量可以根据需要增加/减少。
我想知道是否有一个哈希算法可以生成特定范围内的值(比如如果我必须有10个分区,那么它应该创建以 0-9 )基于给定的范围?

yjghlzjz

yjghlzjz1#

是的,您可以简单地使用键的hashcode对分区数进行模化。但这正是默认分区器所使用的,所以不妨直接使用它。
https://github.com/apache/kafka/blob/0.11.0/clients/src/main/java/org/apache/kafka/clients/producer/internals/defaultpartitioner.java#l69

相关问题