Всем привет. Такой вопрос. Даже несколько. Чтобы понятней кафку использую

со спринг бутом.
Мой consumer читает сообщения из кафки, обрабатывает их, коммитит, тем самым сдвигая офсет. Но что происходит если случается ошибка в процессе обработки? На практике я увидел что офвсет все равно смещается. Почитал, погуглил, вроде бы есть даже флажок, который по умолчанию true и разрешает коммитить даже если был ексепешн. Вроде бы так и работает. Но вот непонятно, сообщения которые были закоммичены как либо отличаются в кафке от тех которые были закоммиччены успешно? Я пока не нашел, и подозреваю что нет, не отличаются. так ли это?
Допустим они не отличаются от тех что были успешно обработвны, тогда второй вопрос - какие существуют практики по переотправке неуспешных сообщений? сместить офсет назат? - тогда в очередь попадут и те, что были успешно обработаны. складывать ошибочные в другую очередь? вручную? может есть что из коробки? другие варианты?

1 ответов

5 просмотров

могу ошибаться но: 1. если обернуть в ConcurrentMessageListenerContainer то можно использовать RetryingMessageListenerAdapter для ретраев обработки сообщения. 2. ретрай делается в случае явного выкидывания exception из onMEssage 3. количество ретраев натсраивается у RetryingMessageListenerAdapter там же можно настроить обработку при последнем ретрае-эксепшене. офсет заомичен не будет. 4. надо понимать что если 5 сообщерний напромер прогнало через ретраи и все не закомитило, а 6е сообшение обработано успешно то коммит его офсета выставит лаг в 0

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта