Class RoundRobinPartitioner

java.lang.Object
org.apache.kafka.clients.producer.RoundRobinPartitioner
All Implemented Interfaces:
Closeable, AutoCloseable, Partitioner, Configurable

public class RoundRobinPartitioner extends Object implements Partitioner
The "Round-Robin" partitioner This partitioning strategy can be used when user wants to distribute the writes to all partitions equally. This is the behaviour regardless of record key hash.
  • Constructor Details

    • RoundRobinPartitioner

      public RoundRobinPartitioner()
  • Method Details

    • configure

      public void configure(Map<String,?> configs)
      Description copied from interface: Configurable
      Configure this class with the given key-value pairs
      Specified by:
      configure in interface Configurable
    • partition

      public int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster)
      Compute the partition for the given record.
      Specified by:
      partition in interface Partitioner
      Parameters:
      topic - The topic name
      key - The key to partition on (or null if no key)
      keyBytes - serialized key to partition on (or null if no key)
      value - The value to partition on or null
      valueBytes - serialized value to partition on or null
      cluster - The current cluster metadata
    • onNewBatch

      public void onNewBatch(String topic, Cluster cluster, int prevPartition)
      Description copied from interface: Partitioner
      Note this method is only implemented in DefaultPartitioner and UniformStickyPartitioner which are now deprecated. See KIP-794 for more info.

      Notifies the partitioner a new batch is about to be created. When using the sticky partitioner, this method can change the chosen sticky partition for the new batch.

      After onNewBatch, the Partitioner.partition(String, Object, byte[], Object, byte[], Cluster) method is called again which allows the implementation to "redirect" the message on new batch creation.

      Specified by:
      onNewBatch in interface Partitioner
      Parameters:
      topic - The topic name
      cluster - The current cluster metadata
      prevPartition - The partition previously selected for the record that triggered a new batch
    • close

      public void close()
      Description copied from interface: Partitioner
      This is called when partitioner is closed.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface Partitioner