4.8Kпросмотров
3 июля 2023 г.
question📷 ФотоScore: 5.3K
🔥 А что, если очередь сообщений уйдет в offline? 🆘 ⚙️ Допустим, у нас есть требование по высокой доступности (high availability), а наша очередь сообщений ушла в offline, а мы хотим писать в нее, что делать? :) ⬇️ Мой вариант решения ⬇️ Реализуем паттерн Outbox - сохранение сообщений в хранилище данных (как правило, в таблице outbox в базе данных), прежде чем они будут в конечном итоге переданы в брокер сообщений. Если бизнес-объект и соответствующие сообщения сохраняются в рамках одной транзакции базы данных, это гарантирует, что данные не будут потеряны. Либо будет зафиксировано все, либо при возникновении ошибки произойдет полный откат. Фоновый воркер может читать табличку outbox и пытаться отправить сообщения в очередь. После отправки можно удалять отправленные сообщения из таблицы, что бы она не разрасталась. Подробнее про Outbox А как бы сделали вы, пишите в комменты!) #queue
#challenge