Зафиксировать смещения Кафки в Java вручную - PullRequest
0 голосов
/ 31 октября 2018

У меня есть ситуация (не спрашивать), где у меня есть информация о смещении (тема, раздел, смещение), которую мне нужно передать в Kafka из внешнего сервиса.

Это единственный способ сделать это, создав объект KafkaConsumer и вызвав commitSync / commitAsync? Или есть механизм, который я пропустил, где я могу сделать коммит, не создавая экземпляр KafkaConsumer? Поскольку я не буду использовать эту услугу, это похоже на излишество.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

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

0 голосов
/ 31 октября 2018

С Java API я не знаю способа произвольной фиксации смещений без Потребителя.

Вы можете использовать инструмент kafka-consumer-groups с параметром --reset-offsets, но под крышкой он создаст Потребителя.

Несколько сторонних клиентов (таких как Sarama или kafka-python) позволяют отправлять необработанные запросы. Используя такого клиента (или настраивая клиент Java), вы сможете напрямую отправлять CommitOffsetRequests.

...