I saw on twitter a post written by Richard Seroter about the Load Balancing and the Azure Service Bus. And it’s fantastic !!!
Indeed, I’ve implemented some relay web services and I’ve to deals with the high availability, because you can’t start more than one service. If you do so, you will have the following error :
The specified address alreay exist. Address sb://youraddress/yourservice/ already in use.
So to solve this problem, I decided to configure the service on a clustered machine to be sure of the availability (but not the performance…, for this I did’nt have any solution)
but the appfabric team seems to have released a new update that allow multiple listeners on one endpoint (and so, have a high availability). The demo of R. Seroter, shows that you don’t have to change your service, just start, and voila!!!
No need to change code or configuration, and also no need to change you Azure AppFabric SDK (if you already use the SDK 1.5)
Good news no?
But this features seems to not be available everywhere at this moment. In europe subscription, I have the same fault.
In United States, South subscription I’ve got :
The specified address already exists. Address sb://youraddress/yourservice/ already in use.[Upgrade: Load-balancing is not supported]
The post of Sam Vanhoutte explain that the only change is to
change your code to manage the number of concurrent listeners per endpoint and set the limits right.(As explain by R.Seroter, you don’t need any change in your code)
I’ve not found any documentation on this point, but the new error indicate for me that an upgrade is needed (and not already in place) for my subscription.
So I’ll wait a couple of day a try again later.
EDIT 28/10/2011: After the comment of R.Seroter, I tried another time but on East Asia Region because the update is deployed on this region. And I succeed (thx Richard for the help).
I could start more than one instance of the service, and as you can see, the service bus load-balance the call of my client.
I try to start an third instance (bottom left), but it doesn’t receive any request. So I close the second instance (upper right).
And the magic occurs 😀 as you can see on the screen, the request are automatically balance on the instance.
After this, I try again on my southUS service bus and the update seems to be deployed.
So I decided to try on my Europe (west) service bus and it works good also.
This is really a good news, and so I don’t have to implement a cluster for my on-premises services.
Juste one strange thing, as you can see in the following screen.
I did this tasks :
- Start 3 instances
- Start the client request
- Start an other instances
And the fourth instance was never requested by the service bus…
I will dig on this later.
Thanks R.Seroter for the help.