Windows Azure AppFabric ServiceBus Relay Load Balancing (Scale & Availability Feature)

As of today, Windows Azure AppFabric Service Bus Relay Service capabilities includes include load balancing feature. With this addition, you can have up to 25 listeners registered to one single service endpoint.

Scale and Availability Feature (aka Load balancing) Main Features:

  • The key goal of the feature is to provide a capability for two separate listeners acting in two different processes either on the same machine or on different machines to share the same Service Bus Relay name and have incoming requests/connections balanced across those concurrently connected listeners.
  • Previously NetEventRelayBinding allowed multiple listeners to connect on the same endpoint. When you tried to do this with any other Service Bus binding you got back AddressAlreadyInUseException. With this feature any Service Bus binding allows multiple listeners on an end point up to a max of 25.
  • When a client connects to a listener it is picked at random. There are no explicit guarantees about order or fairness across the load balanced endpoints. A best-effort attempt at fairness is made by choosing listeners at random, using a strategy ensuring reasonably good distribution.
  • This is a service side change and the functionality is available without an update to the client side SDK (Microsoft.ServiceBus.dll) so you really don’t need a App Fabric SDK update as current App Fabric SDK 1.5 would be sufficient.

With this release, Authentication of user/services in Service Bus is currently handled by ACS. SB creates a buddy namespace ("-sb") in ACS to enable this. The current SWT token returned by ACS is validated by SB, using a single global signing key for all namespaces. This release ensure that each namespace has unique signing key.

 

Detailed Info:

 Example: