Kafka manual ackMode MANUAL_IMMEDIATE, что, если не подтвердить

Я использую Spring KafKa и устанавливаю для ackMode значение MANUAL_IMMEDIATE.

props.setAckMode(AbstractMessageListenerContainer.AckMode.MANUAL_IMMEDIATE);

сценарий таков, что по какой-то причине мое приложение не может подтвердить (acknowledgment.acknowledge()) и просто пропустить его без исключения.

1- Как я могу настроить повторную попытку потребителя для пропущенного сообщения 2- Как настроить вызов функции после того, как достигнуто максимальное количество повторных попыток, которое я настроил


person mohsenJsh    schedule 05.02.2019    source источник


Ответы (1)


См. документацию по SeekToCurrentErrorHandlers.

Когда слушатель выдает исключение, обработчик ошибок выполнит необходимые поиски и повторную выборку записи. Вы можете установить количество попыток, прежде чем сдаться.

Существует также a DeadLetterPublishingRecoverer, который можно использовать отправить неудавшуюся запись в другую тему.

person Gary Russell    schedule 05.02.2019
comment
спасибо за ответ, есть ли способ, чтобы слушатель повторил попытку без исключения (после тайм-аута без подтверждения) - person mohsenJsh; 05.02.2019