我开始使用WCF的一个新项目的架构,但我不是正确的人做一些networking的考虑,所以即时通讯做一些研究,但无法find这些问题的答案:
我们将WCF服务托pipe在2台服务器的通用Windows服务应用程序中,并且我们将有另一台服务器使用WNLB进行负载均衡作业。 我们在Windows服务应用程序中托pipeWCF的事实可能会干扰NLB工作?
在我的研究之前,我认为负载平衡是要configuration的,但是对于NLB来说,它似乎很简单,它真的很简单吗?
注意:绑定将是basicHttpBinding
对于负载平衡WCF服务,我无法专门与NLB交stream,但过去我支持并构build了许多负载平衡的WCF Web服务。 总的来说,我不推荐在开发环境之外使用NLB,因为NLB不能很好地扩展。 但是,如果您无法访问硬件负载均衡器或希望进入Linux(HAProxy / Varnish / Nginx),则可以运行。
所以:
唯一需要注意的是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技术兼容。