Kafkaには付属のツールとして、コンソールを使ったProducer/Consumerが付いています。このうち、Producer(kafka-console-producer.sh)を使った時に、キーを指定してみようというお話。Kafkaのクラスタを用意します。ZooKeeperはひとつとします。最初はキーを指定しないパターンでやってみます。Partition数は3、レプリケーションは2とします。"my-topic".確認。5,4Producer(kafka-console-producer.sh)でデータを登録してみます。my-topic>value1>value2>value3>value4>value5>value6>value7>value8>value9Consumer(bin/kafka-console-consumer.sh)で、最初からデータを読み出してみます。--from-beginningvalue1value4value7value2value5value8value3value6value9けっこうすごい順番になりました。パーティションごとにデータを抜いてきている感じがしますねぇ。キー指定がない場合のパーティション振り分けは、ラウンドロビンなのでした。https://github.com/apache/kafka/blob/0.11.0.0/clients/src/main/java/org/apache/kafka/clients/producer/internals/DefaultPartitioner.java#L57-L66今度は、キーを指定するようにしてみます。先ほどとは別のTopicを作ってみましょう。"my-topic-with-key".Partition数とレプリケーション数は同じです。