Size: a a a

2021 July 08

МА

Мағжан Амангелдіұлы... in Astana JKUG
kalkancrypt-*.jar
источник

T

Tumarkhan in Astana JKUG
источник
2021 July 11

M

Maksat in Astana JKUG
Note that if non-persistent messages are stored in the lazy queue, the memory usage will always be stable, but the messages will be lost after the restart.


если в rabbitmq отправить сообщение с DeliveryMode=Transient в lazy queue, то почему после перезагрузки rabbit-а сообщение потеряется? lazy queue ведь сохраняет все сообщения на диск
источник

M

Maksat in Astana JKUG
если отправить сообщение в DeliveryMode=Persistent в non-lazy-queue, то такая очередь будет вести себя как lazy?
источник

TS

Tair Sab in Astana JKUG
Lazy queue не дает гарантий того, что сообщение сохранится на диске
источник

TS

Tair Sab in Astana JKUG
В данном случае диски используются именно для экономии памяти, но без каких либо гарантий персистентности
источник

M

Maksat in Astana JKUG
lazy сохраняет на диск настолько скоро, насколько это возможно
если предположить, что сообщение сохранилось на диск, но было опубликовано как не-persistence, то все-равно оно потеряется после перезагрузки? Оно ведь на диске
источник

TS

Tair Sab in Astana JKUG
Если сообщение транзиентное, то после рестарта раббит скорее всего просто проигнорит это сообщение, даже если сможет найти его на диске
источник

M

Maksat in Astana JKUG
понятно
а второй вопрос?
чтобы обеспечить персистентость, его ведь надо сохранить на диск как можно скорее, даже если queue не lazy
источник

TS

Tair Sab in Astana JKUG
Нужно сохранить до того, как клиент получит ACK о том что персистентное сообщение принято
источник

M

Maksat in Astana JKUG
а клиент же не будет ждать вечность, поэтому надо сохранить на диск сразу же, как если бы это была lazy queue
источник

TS

Tair Sab in Astana JKUG
Насколько я понял, для раббита транзиентность сообщения не значит “сохрани по возможности”, а значит именно “не сохраняй при потере узла”
источник

TS

Tair Sab in Astana JKUG
Не факт, что lazyQ сохранит транзиентное сообщение ДО отправки ACK-сигнала
источник

M

Maksat in Astana JKUG
транзиентное или персистентное
источник

TS

Tair Sab in Astana JKUG
Транзиентное
источник

TS

Tair Sab in Astana JKUG
LazyQ сохранит «как только сможет» с точки зрения скорости дисков
источник

TS

Tair Sab in Astana JKUG
А не с точки зрения «гарантий сохранности»
источник

TS

Tair Sab in Astana JKUG
вот примерная формула, того как я понял:
Transient + Non-Lazy = не хранится на диске вообще
Transient + Lazy = выгружается на диск, без гарантий сохранности
Persistent + (Lazy | Non-Lazy) = сохраняется на диске ДО ack
источник

M

Maksat in Astana JKUG
ясно, спасибо
источник

TS

Tair Sab in Astana JKUG
@maksat_1991 упростил немного
источник