使用NLB服务器工作WCF WebServices

我开始使用WCF的一个新项目的架构,但我不是正确的人做一些networking的考虑,所以即时通讯做一些研究,但无法find这些问题的答案:

  1. 我们将WCF服务托pipe在2台服务器的通用Windows服务应用程序中,并且我们将有另一台服务器使用WNLB进行负载均衡作业。 我们在Windows服务应用程序中托pipeWCF的事实可能会干扰NLB工作?

  2. 在我的研究之前,我认为负载平衡是要configuration的,但是对于NLB来说,它似乎很简单,它真的很简单吗?

注意:绑定将是basicHttpBinding

对于负载平衡WCF服务,我无法专门与NLB交stream,但过去我支持并构build了许多负载平衡的WCF Web服务。 总的来说,我不推荐在开发环境之外使用NLB,因为NLB不能很好地扩展。 但是,如果您无法访问硬件负载均衡器或希望进入Linux(HAProxy / Varnish / Nginx),则可以运行。

所以:

  1. 不,NLB应该没有问题负载均衡WCF Web服务。
  2. NLBconfiguration起来比较简单,因为它比一个更强大的负载平衡解决scheme具有更less的function。 就是这样。 有很多select,你仍然可以使用,包括重写,但NLB不是一个非常全面的负载平衡解决scheme。

唯一需要注意的是WCF的负载平衡要比NLB更重要。 如果您计划在您的WCF服务中使用SSL,并且转换到支持SSL卸载的负载均衡器,则可能会遇到WSDL无法通过VIP(虚拟服务器IP地址)提供的问题。 有解决方法,但是因为你还没有到达,所以我只是想让你知道,而不是吓到你了。

编辑:我打算详细说明如何解决SSL卸载情况下的元数据,但最近的MSDN博客post处理它更优雅:

http://blogs.msdn.com/b/dsnotes/archive/2014/10/03/ssl-offloading-in-load-balancer-scenario.aspx

要点是有两个选项:修改customBinding以允许enableUnsecuredResponse或完全修改WSDL以使其通过服务器上的HTTPS可用。 选项2是处理这个问题的更有效的方法,因为它可以更好地与非.NET技术兼容。