Как корректно завершить работу потребительского приложения Spring-Kafka - PullRequest
1 голос
/ 07 мая 2020

Я реализовал spring-kafka потребительское приложение.

Я хочу, чтобы пользовательское приложение было корректно завершено.

текущее потребительское приложение завершается с помощью команды Linux kill -9 pid

сейчас я использую аннотацию @KafkaListener.

если я выйду из приложения загрузки Spring, я хочу надежно закрыть потребителя, что мне делать?


у меня есть использовал @Predestory для надежного выхода из приложения весенней загрузки, но я не совсем уверен, связано ли это с этим.

Ответы [ 2 ]

2 голосов
/ 07 мая 2020

Если вы хотите остановить отдельного потребителя, просто вызовите stop() в контейнере слушателя.


Обратите внимание, что когда вы вызываете stop(), контейнер будет обрабатывать все записи, которые были извлечены из poll() до этого момента, прежде чем контейнер закроется.

1 голос
/ 07 мая 2020

kill -9 похоже на звезду смерти

     Some of the more commonly used signals:

     1       HUP (hang up)
     2       INT (interrupt)
     3       QUIT (quit)
     6       ABRT (abort)
     9       KILL (non-catchable, non-ignorable kill)
     14      ALRM (alarm clock)
     15      TERM (software termination signal)

Сигнал уничтожения по умолчанию SIGTERM (15)

kill <pid>

Boot корректно завершит работу; он регистрирует ловушку выключения, которая не может перехватить kill -9.

...