网络负载平衡(NLB):它适用于“有状态”ASP.NET应用程序吗?

时间:2009-11-30 10:41:06

标签: asp.net scalability nlb

我发布了有关ASP.NET Web场的以下问题。

How to create an ASP.NET web farm?

大家建议使用网络负载平衡(NLB)作为创建Web场的主要方式。

但是,Wikipedia表示“NLBS适用于......无状态应用程序”。但是,我们的网络应用程序绝对是“有状态”:它是一个封闭的网站,用户可以通过登录名和密码访问该网站,每个用户的信息都会有所不同:人们会看到他们自己的交易和操作。

在这种情况下, 仍然使用NLB

谢谢。

4 个答案:

答案 0 :(得分:1)

  

在这种情况下我们还应该使用NLB吗?

如果您遵循指南,请不要查看原因。

Web应用程序本质上是无状态的,因此即使您的用户应该登录它也不会使应用程序有状态。

将ASP.NET中有状态的东西结合起来:

  • 会话状态
  • 高速缓存

可以在WebFarm中正确配置。

这是关于如何配置NLB的example

答案 1 :(得分:0)

你仍然可以使用NLB,但是你需要一个支持Sticky Sessions,这意味着它总是将流量从某个客户端路由到同一个Web服务器。在负载平衡方面不是最佳解决方案,但至少可以让您扩展到多个服务器。

答案 2 :(得分:0)

我认为负载平衡仍然是可取的。你只需要设置它以使会话“粘滞”:一旦会话打开:

http://technet.microsoft.com/en-us/library/bb734910.aspx

答案 3 :(得分:0)

当然,是的。您可以使用策略来维护服务器场中的服务器之间的状态。对于服务器场中的所有Web服务器,machineKey设置应该相同,以便auth票证在计算机之间有效。

http://msdn.microsoft.com/en-us/library/ms998288.aspx#paght000007_webfarmdeploymentconsiderations

管理网络服务器之间的会话状态有几个选项:

http://msdn.microsoft.com/en-us/library/z1hkazw7.aspx

http://support.microsoft.com/kb/311209