Все examplesKafka | producers показывают пару ключей/значений ProducerRecord
как не только одного типа (все примеры показывают <String,String>
), но то же значение . Например:Какова цель обмена сообщениями с ключом/стоимостью Kafka?
producer.send(new ProducerRecord<String, String>("someTopic", Integer.toString(i), Integer.toString(i)));
Но в документации Кафки, я не могу найти, где понятие ключ/значение (и его основная цель/полезность) объясняется. В традиционных обменах сообщений (ActiveMQ, RabbitMQ и т. Д.) Я всегда запускал сообщение в определенной теме/очереди/обмене. Но Kafka - первый брокер, который, кажется, требует пары ключ/значение, а не просто строковое сообщение regulare.
Итак, я спрашиваю: Какова цель/полезность требовать от производителей отправки KV-пар?
И, в частности, клавиши также играют важную роль в потоковом API Kafka с помощью 'KStream' и' KTable' - см. [Здесь] (http://docs.confluent.io/current/streams/developer-guide .html # потоки-разработчик-гид-DSL). – reim
Ключи *** могут использоваться для определения раздела, но это всего лишь стандартная стратегия производителя. В конечном итоге именно *** продюсер *** выбирает, какой раздел использовать. – gvo