Spring-Kafka отключение слушателя - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь убедиться, что слушатели kafka закрыты изящно, когда я закрываю свое приложение (изящно или каким-то агрессивным способом).Может кто-нибудь указать мне место, где это обрабатывается?Я искал методы destroy и close, но не смог определить, где на самом деле происходит отмена регистрации клиента kafka.

Что произойдет, если отмена регистрации займет слишком много времени?Или если какой-то другой крючок для выключения бобов весной займет слишком много времени?

И что это на самом деле означает для обработки событий в данный момент?Могут ли они зафиксировать смещение во время выключения, если они закончат свою работу?

Я работаю с версией spring-kafka 1.3.5.

1 Ответ

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

Текущая версия 1.3.x - 1.3.8;Вы должны обновить.1.3.9 будет выпущен в начале января.

Когда вы stop() контейнер слушателя, контейнер остановится упорядоченным образом и обработает все записи, которые ранее были возвращены pol() (но дальнейших опросов нет).будет сделано).Однако вы должны убедиться, что ваш слушатель обработает все оставшиеся записи в пределах shutdownTimeout (по умолчанию 10 секунд, но настраивается).Операция stop() будет заблокирована на это время, ожидая остановки контейнера (ов).

В более современных версиях (2.2.x, в настоящее время 2.2.2) вы можете использовать ApplicationListener или @EventListener потреблять ContainerStoppedEvent.

...