wcfnginxload-balancingwcf-routing

WCF .NET Webservice load balancing using RoutingService vs nginx


I am currently evaluating solutions for WCF Webservice HA with load balancing. I see 2 feasible approaches for the type of WS i am authoring which are

1) Using the RoutingService API / Class provided by .NET 2) Using a HTTP load balancer like nginx.

Which one is a better approach for WCF WS hosted on IIS.


Solution

  • It depends on a lot of factors. The main one being, is the load balancing requirement a pure availability/scalability driven requirement or is it a business requirement?

    If you simply require scale, eg a round robin distribution, or high availability, eg. active/passive failover, and you already have a network load balancer in front of your servers, then I would definitely use that.

    The simple reason is that then it will be looked after by your infrastructure people, which is how it should be. Load balancing for scale/availability etc is not normally a development concern.

    However, if you have a requirement for routing based on message content, eg routing of high priority calls to one endpoint only, or meeting call processing SLAs for different content, then this becomes a business requirement, because routing logic will then be determined on the business context of the call.

    This most definitely is a development concern. In this instance I would certainly use the routing service to implement these various business cases.

    Hope this helps you.