Size: a a a

2021 February 02

D

Dmitry in symfony
Sergey Protko
нет, хранить лог обработанных не поможет.
почему ? и опять же в каком контексте не поможет и для чего конкретно ? для саги в целом или для индентпонентности?
источник

SP

Sergey Protko in symfony
Dmitry
почему ? и опять же в каком контексте не поможет и для чего конкретно ? для саги в целом или для индентпонентности?
для once and only once гарантий. Это сложно и зачем
источник

VK

Vladyslav Kopaihorod... in symfony
Sergey Protko
условно говоря есть три уровня. Первый уровень - сообщения на обрботку. Там все обработчики тусят. Если у них чет пошло не так (reject) то сообщение кроликом отправляются на второй уровень. В том числе и если обработчик по какой-то причине не сделал ack и сообщение пришло второй раз с redelivery=true (мы не можем по другому убрать риски poison message).

На втором уровне тусит обработчик который для сообщений настраивает политику ретраев. Он берет энвелоп и для него прикидывает сколько раз уже выполнялось и сколько надо настроить делей. Дальше оно пишет в базу что мол "через 30 секунд попробуй заслать этот энвелоп еще раз". Так сообщение возвращается на первый уровень. Если количество ретраев больше чем мы разрешаем для сообщения - кидаем nack и сообщение автоматом уходит на третий уровень (fallback queue).

Если дошло до fallback то дальше как бы можно записать в базу (на память и для дебага) и если что сделать даже UI который позволяет эти сообщения закидывать обратно на первый уровень.

Если у тебя класстер кролика в pause minority + есть publish confirms то в целом вся схема весьма надежная и потерять сообщения становится весьма сложно.
а количество ретраев ты в энвелопе хранишь ? или в сообщении кроля?
источник

SB

Sergei Baikin in symfony
Dmitry
а для этого возможно нужно хранить лог обработанных, а может как-то по-другому учитывать уникальность сообщений
это все прибавляет обьем кода для реализации паттерна саги
я прсото в самой логике всегда обычно учитываю
Ибо большая часть сообщений индепонентна по своей природе.
Я делал лог обработанных но в итоге пустая трата ресурсов и места  удалил просто. Гораздо полезнее оказалось думать над сообщениями и их обработкой.
источник

SP

Sergey Protko in symfony
Vladyslav Kopaihorodskyi
а количество ретраев ты в энвелопе хранишь ? или в сообщении кроля?
энвелоп. Что бы от транспорта отвязаться.
источник

MM

Maksim Masiukevich in symfony
@fes0r код гони)
источник

SP

Sergey Protko in symfony
Maksim Masiukevich
@fes0r код гони)
я надеюсь до конца февраля хотя бы обвязку вокруг bunny выложить
источник

VK

Vladyslav Kopaihorod... in symfony
лол
источник

D

Dmitry in symfony
Sergey Protko
для once and only once гарантий. Это сложно и зачем
я не уловил мысль почему не поможет ? лог как раз самое то чтобы не обрабатывать одно и тоже сообщение по 2 раза
источник

VK

Vladyslav Kopaihorod... in symfony
он тут как ту сразу
источник

VK

Vladyslav Kopaihorod... in symfony
Maksim Masiukevich
@fes0r код гони)
я про тебя)
источник

SP

Sergey Protko in symfony
https://github.com/fesor/bugs-bunny - тут к слову ссылки на бложик чела у которого я уму разуму учился
источник

MM

Maksim Masiukevich in symfony
Sergey Protko
я надеюсь до конца февраля хотя бы обвязку вокруг bunny выложить
отмазки) всё равно никто не будет юзать, а примерный вектор понятен станет :) так что херач as is)
источник

SP

Sergey Protko in symfony
Maksim Masiukevich
отмазки) всё равно никто не будет юзать, а примерный вектор понятен станет :) так что херач as is)
не я просто хочу эту часть инфраструктуры вынести из основного репозитория - там много грязи сейчас (прям оч) и хочется обмазаться reliability тестами со всякими toxiproxy/blockade + не все кейсы реализованы пока
источник

MM

Maksim Masiukevich in symfony
Sergey Protko
не я просто хочу эту часть инфраструктуры вынести из основного репозитория - там много грязи сейчас (прям оч) и хочется обмазаться reliability тестами со всякими toxiproxy/blockade + не все кейсы реализованы пока
ну вот, заодно посмотрим, как Сергей код пишет)
источник

MM

Maksim Masiukevich in symfony
хоть архивом заверни и сбрось) а то давно уже клешни тянутся потыкать
источник

SP

Sergey Protko in symfony
Maksim Masiukevich
хоть архивом заверни и сбрось) а то давно уже клешни тянутся потыкать
ок, отправлю тебе на неделе
источник

MM

Maksim Masiukevich in symfony
пасиб)
источник

VM

Volodymyr Melko in symfony
Sergey Protko
ок, отправлю тебе на неделе
не тож интересно
источник

ПВ

Пупс Всемирный... in symfony
Maksim Masiukevich
ну вот, заодно посмотрим, как Сергей код пишет)
ггыг, у меня в одной из основных библиотек, комментарий - "написано на скорую руку, ПЕРЕДЕЛАТЬ" и эта фигня уже лет 5 работает 🙈
источник