1、基本HTTP绑定的负载平衡
无状态通道:使用BasicHttpBinding进行通信的WCF应用程序与其他普通类型的HTTP网络流量(如静态HTML内容、ASP.NET页或ASMX Web服务)没有区别,BasicHttpBinding的通道本质上是无状态的,当通道关闭时,其连接也会终止。
Keep-Alive标头:默认情况下,BasicHttpBinding会在消息中发送一个具有Keep-Alive值的连接HTTP标头,该标头可让客户端建立到支持这些客户端的服务的持续连接,这种配置具有高的吞吐量,因为可以重新使用以前建立的连接向同一个服务器发送后续消息,重新使用连接可能导致客户端与负载平衡场中的特定服务器密切关联,从而降低循环负载平衡的效率。
禁用Keep-Alive:如果不需要此行为,则可以使用CustomBinding或用户定义的Binding在使用KeepAliveEnabled属性的服务器上禁用HTTP Keep-Alive。
2、WSHttp和WSDualHttp绑定的负载平衡
关闭安全上下文的建立:这可以通过将WSHttpBinding上的EstablishSecurityContext属性设置为false来完成,或者,如果需要安全会话,则可以按照安全会话主题中的说明,使用有状态安全会话,有状态安全会话使服务保持无状态,因为安全会话的所有状态都随每个请求作为保护安全令牌的一部分进行传输,若要启用有状态安全会话,必须使用CustomBinding或用户定义的Binding,因为系统提供的WSHttpBinding和WSDualHttpBinding上并不会公开必需的配置设置。
不要使用可靠会话:默认情况下此功能处于关闭状态。
3、Net.TCP绑定的负载平衡
IP层负载平衡技术:可以使用IP层负载平衡技术实现NetTcpBinding的负载平衡,不过,默认情况下,NetTcpBinding会汇集TCP连接以减少连接延迟,这是一种干扰负载平衡基本机制的优化,用于优化NetTcpBinding的主配置值是租约超时,它是连接池设置的一部分,连接池导致客户端连接与场内特定的服务器关联,随着这些连接的生存期的增加(一个受租约超时设置控制的因素),场内不同服务器上的负载分布会变得不平衡,结果使平均调用时间增加,在负载平衡方案中使用NetTcpBinding时,应考虑减少由绑定使用的默认租约超时,虽然租约超时的最佳值取决于应用程序,但30秒的租约超时对于负载平衡方案不失为一个合理的始点。
4、简易WCF负载均衡方案
部署WCF平衡服务器:在客户端跟WCF服务中间部署一台WCF平衡服务器,用来分发请求,模拟nginx的工作,WCF平衡服务器我同样用WCF来实现,所有服务接口全部通过平衡服务区暴露给客户端,对于客户端来说,只要跟正常调用服务一样,添加平衡器的远程服务引用即可。
通过上述方法,可以实现WCF应用程序的负载均衡,提高系统的扩展性和可靠性。
以上就是关于“负载均衡连接wcf”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1267700.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复