Как работает шаблон транзакционной исходящей очереди (Transactional Outbox) в Azure Cosmos DB?
Azure Cosmos DB
0:00 / 0:00
Как работает шаблон транзакционной исходящей очереди (Transactional Outbox) в Azure Cosmos DB?
30 просмотров · 4 ч назад
Azure Cosmos DB
10,4 тыс. подписчиков
30 просмотров · 4 ч назад
В Azure Cosmos DB используется транзакционный шаблон исходящих сообщений, который предотвращает ненадежные двойные записи, сохраняя бизнес-элемент и событие исходящих сообщений вместе в одном атомарном транзакционном пакете. Оба документа должны иметь один и тот же контейнер и значение ключа логического раздела. Затем обработчик потока изменений передает событие брокеру сообщений.
В этом двухминутном объяснении Пэтти Чоу отвечает на следующие вопросы:
• Какую проблему решает транзакционный шаблон исходящих сообщений?
Он предотвращает ситуацию, когда после успешной записи в базу данных не остается сохраненного события для публикации, если передача сообщений завершается с ошибкой.
• Что может атомарно фиксировать Azure Cosmos DB?
Бизнес-элемент и событие исходящих сообщений находятся в одном контейнере и одном логическом разделе. Публикация в брокер сообщений происходит отдельно, после транзакции с базой данных.
• Гарантирует ли это доставку ровно один раз?
Нет. Обработка потока изменений выполняется как минимум один раз, поэтому ретранслятор может публиковать дубликаты. Используйте стабильные идентификаторы событий для дедупликации и сделайте потребителей идемпотентными, чтобы повторная обработка события не имела дополнительных эффектов.
Докладчик: Пэтти Чоу
Узнайте, как реализовать шаблон транзакционных исходящих сообщений:
https://learn.microsoft.com/azure/arc...
#AzureCosmosDB #NoSQL