Можем ли мы получить значение от Кафки, используя ключ?Как мы можем передать заголовок в Кафке Сообщение? - PullRequest
0 голосов
/ 22 сентября 2019
  1. Я только начал изучать Kafka, я не могу понять, зачем нужен ключ в kafka, так как мы также можем напрямую отправить сообщение в виде одной строки, как JMS.И возможно ли получить значение из записей, указав ключ?(Я сравниваю это с селектором в JMS, поэтому, основываясь на том, что мы можем фильтровать сообщение).
  2. Как мы можем передать заголовок с сообщением?И возможно ли просто отправить сообщение с заголовком, а не парой ключ-значение?

Ответы [ 2 ]

2 голосов
/ 23 сентября 2019

Ключ является необязательным, и по умолчанию определяет, в какой раздел поступают сообщения в теме.

Невозможно выбрать ключ из темы - вам придется вычислитьразделите его, затем просмотрите все сообщения тематического раздела.Можно создать Ktable в API-интерфейсе Kafka Streams, чтобы создать тип хранилища KV, из которого вы можете выбрать, хотя, с помощью «Интерактивных запросов»)

В Java API есть метод отправки производителя, который позволяет вампередавать заголовки.Вам нужно будет установить ключ и значение на ноль, чтобы отправлять только заголовки.Я недостаточно знаком с поддержкой других клиентов для заголовков


Заголовки можно использовать для отправки дополнительных метаданных, например, номеров версий клиентов или трассировок, которые будут использоваться в таких службах, как zipkin.Эти данные находятся вне бизнес-контекста того, что вы отправили бы как часть полезной нагрузки ключ / значение.И я не в курсе возможности отправлять заголовки на консоль

0 голосов
/ 23 сентября 2019

зачем нужно значение ключа в kafka

Ключ определяет раздел, в котором создается сообщение.

Каждое сообщение должно иметь ключ, который можетуказывается напрямую (при создании ProducerRecord с использованием API Kafka Producer) или косвенно через Partitioner , что "вычисляет раздел для данной записи."

KafkaAPI-интерфейс производителя дает нам DefaultPartitioner, который использует 32-разрядный хэш murmur2 для вычисления раздела для записи (с определенным ключом) или выбирает раздел в циклическом порядке (согласно доступным разделам темы).

, поскольку мы также можем напрямую отправить сообщение в виде одной строки, как JMS.

Это возможно при использовании пользовательского Partitioner.По умолчанию это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...