GroupId теряет позицию смещения, если метод подписки вызывается дважды? - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть KafkaConsumer, который вызывает метод подписки для определенной темы (например, topic1).После подписки на сообщения из этой темы1 я затем вызываю метод подписки для другой темы (например, topic2).

В конце я вызываю commitSync - будут ли зафиксированы смещения topic1 и topic2?

Большое спасибо Stackoverflow-ers:)

1 Ответ

0 голосов
/ 04 декабря 2018

При фиксации смещений с использованием методов commitSync() или commitAsync() (без передачи смещений) будут приниматься только смещения для разделов, назначенных в настоящее время для Получателя.

Если вы ранее были подписаны на другую тему, эта информация не сохраняется в получателе, а смещения, относящиеся к предыдущим темам, теряются.

Перед изменением подписки необходимо либо выполнить коммит, либо получить смещенияперед изменением подписки с помощью position() и ручной фиксацией всех из них в конце, используя один из методов фиксации (например, commitSync(offsets)), которые принимают смещения.

...