Hi, I have been going through http://kafka.apache.org/documentation.html and read below for providing custom partitioner.
- provides software load balancing through an optionally user-specified Partitioner - The routing decision is influenced by the kafka.producer.Partitioner. interface Partitioner<T> { int partition(T key, int numPartitions); } The partition API uses the key and the number of available broker partitions to return a partition id. This id is used as an index into a sorted list of broker_ids and partitions to pick a broker partition for the producer request. The default partitioning strategy is hash(key)%numPartitions. If the key is null, then a random broker partition is picked. A custom partitioning strategy can also be plugged in using thepartitioner.class config parameter. While in .8.2.0 kafka-clients jar, there is no interface Partitioner though Partitioner class is there which do partition based on below logic i)If a partition is specified in the record, use it ii)If no partition is specified but a key is present choose a partition based on a hash of the key iii)If no partition or key is present choose a partition in a round-robin fashion Am I missing something??