Как получить сообщение по ключу из темы кафки - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь получить сообщение по ключу от Кафки. Я нашел только одно решение - использовать StateStore, но я думаю, что это может быть не очень хорошая идея. Как получить сообщение по ключу из темы кафки? Это хорошая идея использовать StateStore для этой операции?

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Каждая запись, записанная в Kafka, может иметь ключ (но не обязательно!), Доступ к ключу можно получить несколькими способами:

Консоль потребителя:

$ kafka-console-consumer --bootstrap-server <servername>:9092 --topic topicname --from-beginning --property print.key=true --property key.separator=:

kafkacat

$ kafkacat -b <servername>:9092 -C -t topicname -o beginning -K :

Java Consumer API :

ConsumerRecord#key()

Кафка не индексируется по ключу, он индексируется по смещению и, необязательно, по отметка времени . Если вам нужно найти ключ, вам нужно материализовать данные в систему, которая была разработана для поиска по ключу: реляционная база данных, хранилище значений ключа или какой-либо индекс. Вы можете сделать это довольно легко с Kafka Connect, или если вы хотите встроить его в свой сервис, вы можете использовать функцию интерактивных запросов в Kafka Streams .

0 голосов
/ 05 сентября 2018

Вы не можете "получать сообщения по ключу от Кафки".

Одним из решений, если это целесообразно, было бы иметь столько разделов, сколько ключей, и всегда направлять сообщения для ключа в один и тот же раздел.

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