Коллеги, привет. Подскажите, пожалуйста, по логике работы kafkalistener в spring kafka.


Правильно ли я понял, что при сбойном сообщении consumer пытается 10 раз его прочитать, затем перепрыгивает на следующее сообщение и если его удалось вычитать, то оффсет смещается и идёт дальше?

7 ответов

27 просмотров

Привет. Не встречал подобного описания поведения консумера. По доке подобных прыжков ни кафке ни в спринг кафке не предусмотрено. Есть ссылка? на что ориентируетесь?

Chuck U.-Farley Автор вопроса

Да на странную ситуацию, которую не могу понять Есть listener, который вычитывает сообщения и перекладывает их в oracle. Ack.Acknowledge делается после сохранения, в настройках consumer стоит manual_intermediate И все бы хорошо, но появились пропуски в сохранённых сообщениях. Сформировали тестовое кривое сообщение, бросили в топик, понаблюдали за логами - были попытки отправки, потом прекратились Далее отправили правильное сообщение и оно дошло С одной стороны хорошо, что не блокируется разбор сообщений, с другой понять бы хочется как это вообще работает

Chuck U. Farley
Не, manual_intermediate

я вот о этом: "The listener container for the replies MUST be configured with AckMode.MANUAL or AckMode.MANUAL_IMMEDIATE; the consumer property enable.auto.commit must be false (the default since version 2.3). To avoid any possibility of losing messages, the template only commits offsets when there are zero requests outstanding, i.e. when the last outstanding request is released by the release strategy. After a rebalance, it is possible for duplicate reply deliveries; these will be ignored for any in-flight requests; you may see error log messages when duplicate replies are received for already released replies."

Chuck U.-Farley Автор вопроса

Явно не указано, значит false должен быть, судя по тексту

Chuck U. Farley
Явно не указано, значит false должен быть, судя по...

Попробуйте включить debug у kafka client и spring kafka - узнаете кто и когда коммитит оффсеты

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

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

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
3
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Всем привет. Не понимаю, в чём тут шутка юмора. Убирается только разрешение на send_messages. А send_media_messages остаётся. Как сделать, чтобы оба убирались? await b...
Alexander
2
Карта сайта