Реализация архитектуры транзакционных исходящих событий в Azure

У меня есть большое сообщение, отправленное в службу отдыха, оно может быть 100 КБ или 50 МБ. Мне нужно обработать его асинхронно, и похоже, что шаблон транзакционных исходящих событий подходит для моих нужд.

По сути, моя служба передаст данные в базу данных вместе с записью события в одной транзакции. Процесс будет опрашивать события и помещать событие в очередь сообщений. Событие содержит ссылку на данные в базе данных, обычно через какой-либо уникальный идентификатор. Потребитель очереди будет запрашивать данные из базы данных, делать все, что ему нужно, а затем удалять запись о событии из базы данных.

Этот шаблон хорошо задокументирован. здесь и здесь два места.

У меня есть разумное понимание того, как это можно реализовать локально, в среде сервера .net/sql, с которой мы знакомы. Как бы это выглядело в лазури? существуют ли другие способы, которыми я могу переходно записывать в базу данных и очередь, которые не требуют шаблона исходящих сообщений или следования шаблону исходящих сообщений, каков будет механизм, который опрашивает события в БД, и что будет предоставлять службу очереди?


person Jeremy    schedule 02.10.2020    source источник


Ответы (1)


Обычно, если вы хотите использовать шаблон транзакционных исходящих событий в Azure, вы можете использовать приложение логики или функцию Azure для получения событий в базе данных и отправки их в очередь. Это было бы здорово, если бы вы использовали ленту космических изменений, чтобы ваша архитектура также была реактивной и работала хорошо с меньшим потреблением ресурсов.

Чтобы хорошо избежать этого шаблона .... вы должны найти очередь в лазури, которая может быть в транзакции с вашей базой данных и для того, что я знаю, это невозможно, по крайней мере, вы не используете третью часть очереди.

person pioardi    schedule 03.10.2020