dba*_*nes 20 asp.net performance load-balancing
我正在写一个网站,它将开始使用负载均衡器,我正试图绕过它.
看起来很多我一直在阅读的文章并没有真正给我一个直接的答案,或者我只是没有正确理解它们,我想了解真正的负载平衡如何从技术方面起作用,如果有人有任何代码可以分享,那也很好.
我知道缓存会成为一个问题,但这也是一个不同的主题,会话.
Kon*_*osa 17
IIS默认情况下没有负载均衡器,但您可以使用至少两种Microsoft技术:
这两种技术本身都不需要任何代码,这只是基础设施的问题.但是你当然必须记住开发过程中的负载平衡环境.例如,为了使网站真正平衡,它们应该是无国籍的.否则,您将不得不在客户端和服务器之间提供所谓的粘性,因此同一客户端将始终连接到同一服务器.
要使服务无状态,请不要在服务器上保留任何状态(例如,在ASP.NET网站的情况下为Session),而是在服务器场中所有服务器之间共享的外部服务器上保留.因此,例如,对集群中的所有站点使用外部ASP.NET会话服务器(StateServer或SQLServer模式)是很常见的.
编辑:
只是为了澄清一些事情,关于两种提到的技术:
一些提示,也许是让自己完全熟悉的项目:
上述所有上述答案的ARR是一个"代理",用于处理从用户到服务器的流量.
您可以像Konrad指出的那样处理State,或者您可以让ARR执行"粘性"会话(确保客户端始终转到"此服务器" - 可能是维护该特定客户端状态的服务器).请参阅有关该答案的讨论/评论 - 这很棒.
我没有佩戴IT /服务器帽这么长时间,并且坦率地说没有触及聚集动手(总是由某些提供商"自动处理"),所以我确实从我们的主人那里问了这个问题,"什么/怎么样我们的集群/服务器之间的复制"完成了吗?" - 问题涵盖了类似的问题
SSL:ARR也可以为您处理这个问题,这太棒了!但是就像所有的力量一样,来一个"骗局" - 如果你在你的代码中检查/验证,例如HttpRequest.IsSecureConnection,那么它将永远是false.您的服务器/虚拟机没有证书,ARR可以.加密的conn在客户端和ARR之间.ARR到您的服务器/虚拟机不是.正如链接所解释的那样,如果您更喜欢它(没有卸载),您可以......但这意味着您的所有服务器/ VM都应该拥有一个证书(以及与上述"复制"相关的方式如何开始在您的头).
不仅仅是全面的,只是从记忆中列出的东西...... Hth