Kafka Default Partitioner
When creating a Kafka message, it's possible to set a key in order to ensure that all messages with that same key end up on the same partition.
Previously, the default strategy (aptly named DefaultPartitioner
) used to be that the message
key attached to a message would be hashed using
murmur2.
You could use this calculator combined with the
default Kafka seed
(9747b28c
) to figure out the murmur hash and then modulo by the number of partitions you had.
For example:
0974728 (seed) + 12413413 (input) -> 3242098085 (hash)
3242098085 (hash) % 16 (partition)
= 5
0974728 (seed) + 12413413 (input) -> 3242098085 (hash)
3242098085 (hash) % 16 (partition)
= 5
This would mean that a message with a key of 12413413
sent to a topic with 16 partitions, would
be assigned to Partition 5