Привет! При ошибке produce мы же не можем гарантировать, что

сообщени не записалось в топик?

13 ответов

6 просмотров

можно сделать идемпотентного продюсера и накрутить ретраев

Shaplin-Шаплин Автор вопроса
Yegor
можно сделать идемпотентного продюсера и накрутить...

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

Shaplin Шаплин
Но если пришла ошибка, то значит сообщение не запи...

может) для этого и нужно ретраить с идемпотентным продюсером во избежании дублей))

Shaplin Шаплин
Но если пришла ошибка, то значит сообщение не запи...

лучше считать что в любом случае будут дубли, чем полагаться на их отсутствие

Сделайте продесер транзакционным. В кафку он писать будет, но при падении записи откатятся.

Yegor
может) для этого и нужно ретраить с идемпотентным ...

Ни идемпотентный продюсер, ни транзакционный дают исключительно at-least-once, для исключения дублей необходима идемпотентность на уровне консьюмера.

Alexander Fedyukov
Сделайте продесер транзакционным. В кафку он писат...

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

Ilya Starchenko
Транзакция здесь никак не поможет, у нас и так ест...

Что произойдёт с записанными сообщениями, если в момент получения ака у нетранзакционного продюсера выключат свет? А если у транзакционного?

Alexander Fedyukov
Что произойдёт с записанными сообщениями, если в м...

В случае одного сообщения - это идентичные ситуаци(если, конечно, ack и in-sync настроены нормально).

Ilya Starchenko
В случае одного сообщения - это идентичные ситуаци...

Зачем тогда придумали readcommited? Если аков всегда должно хватать.

Alexander Fedyukov
Зачем тогда придумали readcommited? Если аков всег...

Потому что транзакционность необходима для продьюсинга сообщений во множество партиций и получения гарантии, что они все будут записаны(или ролбэк). Но это ничего не дает в случае одного сообщения, так как у нас и так есть механизм ack и так же это не дает exactly-once(так как он теоритически невозможен). P.S. Transactional api в кафке - это самый сложный api, который я видел, и я бы лишний раз подумал, прежде чем его приносить(хотя со своей задачей он, конечно, справляется).

Ilya Starchenko
Потому что транзакционность необходима для продьюс...

Не совсем так. Транзакционный продюсер позволяет также синкать отправку сообщений и коммит оффсета. Что позволяет организовать read process write с exactly once семантикой.

Anatoliy
Не совсем так. Транзакционный продюсер позволяет т...

Это с большой натяжкой можно назвать exactly-once, но да, если мы говорим про reed-process-write(без учета внешних систем), то да, оно имеет подобные свойства, с другой стороны, изначальное сообщение исключительно про продюсера.

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

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

Кто создает тут ботов для телеграмм групп ?
Antskup
8
Я хочу запустить свой проект в тг. Что-то между пирамидой и майнилкой. Еще подобного ничего не было. Уникальная идея. Нужен именно не бот, а приложение. С ввод, выводом тон...
Павел А.
6
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
13
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
господа, когда у вас в боте есть локализация (ру + англ, остальные языки пока не планируются), вы на первом старте как с языком решаете вопрос: смотрите на language_code приле...
Denis 🐍|👑 | darling! 🥰
5
Я колись ставив гуглу антиспам 3.0, може і норм, але мені не дуже зайшло. Теж думав тиждень, що його і куди. Зупинився на трех варіантах відразу всі три і включив 1. Перевір...
𝓔𝓾𝓰𝓮𝓷𝓮𝓥 J
2
Всем привет, Добавил в плагин определение user agent public function registerMarkupTags() { return [ 'filters' => [ 'staticPage' => ['RainLab\Pages\Cl...
John Norton Kruger
3
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Мне нужен бот который в группе будет за неправильное оформление ордера удалять и высылать как правильно составить его Кто такой напишет?
Antskup
1
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Карта сайта