Как ServiceBus может гарантировать заказ FIFO, если получающая функция Azure остановлена? - PullRequest
0 голосов
/ 19 февраля 2019

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

(Client) ---Message---> (Service Bus) ---Message---> (Azure Function)

Сервисная шина гарантирует, что первое сообщение вочередь выйдет первой (FIFO).

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

Допустим, одна из этих функций Azure аварийно завершает работу (по каким-либо причинам) и не может обработать сообщение.

Вопрос

Сервисная шина возвращает обратно необработанное сообщение обратно и означает ли это, что технически, даже если это сообщение было первым вочередь, это действительно может быть обработано после более свежего сообщения?

1 Ответ

0 голосов
/ 19 февраля 2019

Вам необходимо правильно установить SessionID, чтобы гарантировать порядок.Для объектов, поддерживающих сеанс, это значение, определяемое приложением, указывает принадлежность сеанса сообщения.Сообщения с одним и тем же идентификатором сеанса подлежат суммарной блокировке и обеспечивают точную обработку и демультиплексирование по порядку.Для объектов, не поддерживающих сеанс, это значение игнорируется.См. Сеансы сообщений.

https://docs.microsoft.com/en-us/azure/service-bus-messaging/message-sessions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...