Проверьте сообщение было записано в тему kafka с помощью командной строки - PullRequest
0 голосов
/ 15 октября 2019

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

У меня есть тема, в которую я написал сообщение, и я могуПодтвердите, что это так, если я запускаю ./kafka-console-consumer.sh с параметром --from-beginning, но, поскольку это запускает потребителя, команда застревает и требует ручного вмешательства с SIGINT. Я подошел ближе, используя --timeout-ms, однако это не идеально, так как, если я не выберу высокое значение, есть вероятность, что дамп данных ненадежен.
Я бы хотел вывести вывод консоли-потребителя таким образомтаким образом, чтобы его можно было найти, или подходящий альтернативный метод.

1 Ответ

1 голос
/ 15 октября 2019

Когда вы пишете в Kafka, вы можете установить в производителе acks, который представляет собой уровень гарантии, который вы хотите от брокера, чтобы сообщение было получено и написано локальным брокером и / иливсе реплики.

Если вы используете это, то вам не нужно пытаться потреблять из темы, чтобы определить, была ли запись написана или нет. Это звучит как очень плохая идея, чтобы попробовать и сделать.

Если вам абсолютно необходимо использовать инструмент командной строки для этого (что не очень хорошая идея), тогда используйте kafkacat, который может использовать любое смещение для любого количества сообщений, например:

  • Использовать (-C) пять сообщений (-c 5) с начала (-o beginning) или выходить (-e), когда достигнут конец раздела

    kafkacat -b localhost:9092 -t mytopic -o beginning -e -C -c 5
    
  • Использовать (-C) десять сообщений (-c 10) с конца (-o -10) или выходить (-e), когда достигнут конец раздела

    kafkacat -b localhost:9092 -t mytopic -o -10 -e -C -c 10
    
  • Использовать (-C) одно сообщение (-c 1) по смещению 42 (-o 42) или выходить (-e), когда достигнут конец раздела

    kafkacat -b localhost:9092 -t mytopic -o 42 -e -C -c 1
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...