THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||
---|---|---|
| ||
package org.apache.kafka.clients.producer; public interface Partitioner extends Configurable { /** * This is called after partitioner is registered. */ public void init(); /** * Configure partitioner class with given key,value pairs from partitioner.metadata config. */ @override public void configure(Map<String, ?> configs); /** * Compute the partition for the given record. * * @param topic The topic name * @param key The key to partition on (or null if no key) * @param keyBytes The serialized key to partition on( or null if no key) * @param value The value to partition on * @param valueBytes The serialized value to partition on * @param partition The partition to use (or null if none) * @param cluster The current cluster metadata */ public int partition(String topic, Object key, byte[] key, Object value, byte[] value, Integer partition, Cluster cluster); Cluster cluster); /** * This is called when partitioner is closed. */ public void close(); } |
Code Block | ||
---|---|---|
| ||
package org.apache.kafka.clients.producer; public class DefaultPartitioner implements Partitioner { } |
...
- Add a new partitioner interface .
- Move existing partitioner code to DefaultPartitioner .
- Introduce new producer config called "partitioner.class" and "partitioner.metadata". By default it "partitioner.class" points to org.apache.kafka.clients.producer.DefaultPartitioner
...