Рубрики
Без рубрики

Производитель Кафки повторяет попытку весной кафка

В конфигурации производителя Kafka есть опция (свойство повторных попыток) для выполнения автоматических попыток в случае… С тегами кафка, весна, ява.

В конфигурации производителя Kafka есть опция ( повторные попытки свойство) для выполнения автоматических попыток в случае повторяемых исключений, таких как исключение NoLeaderForPartition, исключение NetworkException, исключение TimeoutException и т.д.

Свойство повторяет имеет значение по умолчанию как Целое число. МАКС согласно https://kafka.apache.org/documentation/#producerconfigs .

Я использовал spring-kafka 2.2.8-RELEASE в приложении и попытался протестировать поведение повтора, отключив одного из брокеров из кластера Кафки. Он вызвал исключение Notleaderforpartition, так как брокер лидеров для раздела вышел из строя, и для назначения нового лидера этому разделу потребовалось 1-2 секунды.

Согласно документации, продюсер должен был уйти в отставку из-за этого исключения, но, к удивлению, этого не произошло. Копая дальше, выяснилось, что в выпуске spring-kafka 2.2.8 (август 2019 года, последняя версия в центральном репозитории) используется версия 2.0.1 kafka-клиенты библиотека, тогда как последняя версия библиотеки kafka-clients – 2.3.0. В версии kafka-клиенты 2.0.1 значение по умолчанию для повторных попыток равно 0.

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

Оригинал: “https://dev.to/nagarajan/kafka-producer-retries-in-spring-kafka-49fl”