Как отправить сообщение на определенный раздел в Кафке? - PullRequest
0 голосов
/ 14 мая 2018

Я создал тему, которая имеет много разделов. Используя производителя консоли, я хочу отправлять сообщения в определенные разделы и просматривать их через потребителя консоли. На консоли производителя я пробовал это,

kafka-console-producer.bat --broker-list localhost:9092 --topic sample  --property parse.key=true --property key.separator=,

Отправка сообщений как,

key1,another-message

Но я просто не понимаю, представляет ли key1 номер раздела .

Используя консоль потребителя, я просмотрел сообщения,

kafka-console-consumer.bat --zookeeper localhost:2181 --topic sample

Я хочу просматривать сообщения в соответствии с разделами. Это правильный способ просмотра сообщений на консоли потребителя? Может ли кто-нибудь дать четкое представление об этом?

1 Ответ

0 голосов
/ 14 мая 2018

Ключ не является номером раздела, но Kafka использует ключ для указания целевого раздела. Стратегия по умолчанию состоит в том, чтобы выбрать раздел на основе хэша ключа или использовать алгоритм циклического перебора, если ключ равен нулю.

Если вам нужен собственный алгоритм для сопоставления сообщений с разделами, вам необходимо реализовать интерфейс org.apache.kafka.clients.producer.Partitioner. Имя вашего класса должно быть установлено как partitioner.class свойство производителя.

Обновление: Вы также можете указать номер раздела непосредственно в ProducerRecord

...