Как зафиксировать смещение с помощью ConsumerAwareErrorHandler при использовании параллелизма? - PullRequest
0 голосов
/ 02 января 2019

В случае ошибки интерфейс ConsumerAwareErrorHandler предоставляет ссылку на метод ConsumerRecord и Consumer in handle.Теперь после обработки ошибки мы можем либо зафиксировать смещение, либо проигнорировать.Но мне интересно, как он будет себя вести, когда мы используем более одного потока (ConcurrentKafkaListenerContainerFactory.setConcurrency).Если последняя запись вычеркнута по ошибке по предыдущей причине по другой причине, и мы фиксируем смещение для последней, но первая запись не удалась с ошибкой FATAL, и мы не должны были зафиксировать какое-либо смещение.

Я использую AckMode.COUNT в сочетании с! AckOnError

1 Ответ

0 голосов
/ 02 января 2019

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

Разделы распределены по потокам.

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