开发者

Windows/.NET Load Distribution & Balancing

Is there a vetted Windows-friendly, or even .NET-native, load-distributing/load-balancing utility out there along the lines of HA Proxy? We have a .NET stack product, and the one piece that we step out of the stack is for l开发者_JAVA技巧oad-balancing.

We need something with configurable rules for distribution -- perhaps subdomain-driven -- that NLB alone doesn't seem to offer. If it integrates directly with .NET, or offers an exposed API callable by webservices, so much the better!

Thanks in advance!

Clarification: we need to logically part over boxes. This is not just a cluster/failover/replication scenario.

Further clarification: we are a WCF house. We already have a custom router and inspectors on our grid. We need distribution on the frontend however, which is where HA Proxy currently lives in our architecture. However, we need something we don't have to write then test the heck out of, as we're about to wrap a release and no one has cycles to test something up to the level of an HA Proxy.

Candidate solution: I was previously unaware of IIS7+ Application Request Routing (ARR) which uses the URLRewrite module. I'm not familiar with anyone who can speak to ARR's performance and stability, perhaps a Stacker can help me out?


I've been using Application Request Routing for several months now, though more for reverse proxying than load-balancing or farm management at this point in time.

It's certainly convenient when you're 100% Microsoft stack to begin with.

I can't speak to performance yet, at least not in any broad sense. Using it as a proxy introduces no user-noticeable performance hit, but it does introduce very occasional 502s, apparently when the content server takes longer to respond than the ARR controller is configured for timeout.

ARR appears to be fairly extensible, for integration with custom affinity providers, integration with third-party equipment like Citrix or F5, but I haven't fully explored this.

I've seen no "definite," no "regular" stability issues, but there has been some IIS flakiness that may be ARR-related. Inexplicable errors that go away with an app pool recycle, or server restart.

None of the minor issues encountered have prevented going to production. None of the minor issues encountered have been showstoppers for clients.


With .NET 4.0 we get the WCF Routing Service which looks to be a software based proxy we get out of the box, which could possibly be used to distribute load. It can do content based routing, protocol mediation (tcp/ip->http or https->http) and is likely extensible in some fashion.

Some resources to get started:

  • WCF Routing Service in .NET 4.0 channel 9 video.
  • .NET 4.0 Training Kit for some .NET 4.0 samples

You can always start rolling your own using these articles by Bustamante:

  • Building a WCF Router, Part 1
  • Building a WCF Router, Part 2

HTH,

Z

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜