Azure Service Bus and Messaging Sessions

2019-02-16 13:11发布

问题:

I've been looking into Azure Service Bus Queues (NOT Azure Storage Queues). All of the details that I have read indicate that it supports FIFO semantics, but only in the context of a "Messaging Session". The problem is that I can't seem to find any information on what exactly this is in the context of Azure. Is this a WCF construct, or something that is particular to Azure Service Bus? I assume that it does not relate to local transactions, but I am not 100% sure.

Any pointers would be very helpful. Thanks!

回答1:

Specifically it refers to MessageSession, and it's the AcceptMessageSession method that holds the key by returning messages only for a given session id, which could be a sequence implying some ordering. The Brokered Messaging: Session Messages sample should help clarify, and the Best Practices document is another great reference.



回答2:

Taken from MSDN:

SessionId: If a message has the Microsoft.ServiceBus.Messaging.BrokeredMessage.SessionId property set, then Service Bus uses the SessionId property as the partition key. This way, all messages that belong to the same session are handled by the same message broker. This enables Service Bus to guarantee message ordering as well as the consistency of session states.

For a coding sample employing SessionId and AcceptSessionReceiver see.