Служебная шина Azure и сеансы обмена сообщениями

Я изучал очереди служебной шины Azure (НЕ очередей хранилища Azure). Все подробности, которые я прочитал, указывают на то, что он поддерживает семантику FIFO, но только в контекст «сеанса обмена сообщениями». Проблема в том, что я не могу найти никакой информации о том, что именно это такое в контексте Azure. Это конструкция WCF или что-то особенное для служебной шины Azure? Я предполагаю, что это не относится к локальным транзакциям, но я не уверен на 100%.

Любые указатели были бы очень полезны. Спасибо!


person Erick T    schedule 28.08.2012    source источник


Ответы (2)


В частности, это относится к MessageSession и это метод AcceptMessageSession, который содержит ключ, возвращая сообщения только для данного идентификатор сеанса, который может быть последовательностью, подразумевающей некоторый порядок. Пример Brokered Messaging: Session Messages должен помочь прояснить это, а Лучшие практики документ - еще один отличный справочник.

person Jim O'Neil    schedule 28.08.2012
comment
Джим - Спасибо за ответ. Насколько я понимаю, идентификатор сеанса можно использовать для упорядочивания сообщений, но в структуре нет ничего, что могло бы предоставить эти идентификаторы сеанса. Это означает, что вам необходимо сгенерировать порядковые номера для использования в идентификаторах сеансов для FIFO. Это правильно? - person Erick T; 29.08.2012
comment
да, это тоже мое прочтение ... Я надеялся найти конкретный пример использования FIFO, но пример, который я упомянул, был самым близким. - person Jim O'Neil; 29.08.2012
comment
Спасибо, Джим. Если я соберу один, который стоит опубликовать, я добавлю его сюда. - person Erick T; 30.08.2012
comment
Интересный вопрос и ответ. Я задаю то же самое ... вы нашли или создали пример для FIFO? - person morleyc; 18.05.2013

Взято из MSDN:

SessionId: если для сообщения задано свойство Microsoft.ServiceBus.Messaging.BrokeredMessage.SessionId, служебная шина использует свойство SessionId в качестве ключа раздела. Таким образом, все сообщения, принадлежащие одному сеансу, обрабатываются одним и тем же брокером сообщений. Это позволяет служебной шине гарантировать порядок сообщений, а также согласованность состояний сеанса.

Пример кода с использованием SessionId и AcceptSessionReceiver см.

person participant    schedule 03.12.2014