tags:

views:

160

answers:

2

Perhaps I have the wrong product in mind for our needs -- but I want to know if I can use Application Request Routing (ARR) in IIS7 to load balance requests for our application tier.

We have a farm of web servers. Each will be running our MVC web application. We load balance these servers through our web application firewall and load balancing appliances. In turn, they will be make WCF calls to our application servers. It's these calls that I want to use ARR to manage.

However, after looking at ARR, it seems like it's all about rewriting URLs coming from the client. But that's not how our situation works. If a user browses to www.myapp.com/home/index, we will in turn be making WCF calls to services configured in the web.config to say myappservice.foo.local/home/GetInfo.

How do I configure for this scenario, or am I looking at the wrong product?

+1  A: 

I am not really sure to understand your scenario, but if i understand correctly, I think you would be able to call your WCF sevice. If you dont need to keep the session on your call, just uncheck the client affinity checkbox in server affinity configuration.

Configure your load balance to Round Robin, or Least response time in the load balance interface and your request will suppose to be load balance.

If you got more that one ARR server, i suggest you to disable Shared configuration on your ARR, we get some problem with this features on the ARR server.

Cédric Boivin
A: 

I agree with @Cedric, not sure if the question has been phrased as well as it could be?

What type of load balancing/distribution are you looking to achieve?

Are you looking to balance load? Distribute load to specific server farms based on request content? Some other function? A little more info here might help get a better answer.

Will ARR work with WCF?

Yes, but only with the HTTP bindings as far as I know (wsHttpBinding and basicHttpBinding).

I still imagine there being a hardware loadbalancer (or some other method) in front of your ARR servers.

Your web servers are going to act as clients of the application servers servicing your WCF requests. However, it appears as if your already going to a DNS name of myappservice.foo.local/home/GetInfo - if it resolves to a virtual ip your already getting loadbalancing of some kind?

Why not use your existing "load balancing appliances" to do the load balancing?

I could definitely imagine a hardware loadbalancer servicing requests for mayappservice.foo.local, which then resolves to a virtual ip backed by your ARR servers. Then conceivably your ARR servers could then further refine who services the request, maybe by some content of the request? Maybe map all /home requests to one group of servers and all /foo to another?

Pretty sure I muddied the waters a bit more! :) But I'm very curious for reasons for looking at ARR.

Zach Bonham