【问题标题】:Network Load Balancing (NLB): is it suitable for "stateful" ASP.NET applications?网络负载平衡 (NLB):它是否适合“有状态”的 ASP.NET 应用程序?
【发布时间】:2010-12-21 14:26:28
【问题描述】:

我发布了以下有​​关 ASP.NET 网络农场的问题。

How to create an ASP.NET web farm?

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

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

我们是否应该在这种情况下仍使用 NLB

谢谢。

【问题讨论】:

    标签: asp.net scalability nlb


    【解决方案1】:

    您仍然可以使用 NLB,但您需要一个支持粘性会话的 NLB,这意味着它将始终将来自某个客户端的流量路由到同一 Web 服务器。在负载平衡方面不是最佳解决方案,但至少可以让您扩展到多台服务器。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        如果您遵循指南,则看不到为什么不这样做的原因。

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

        结合 ASP.NET 中的有状态的东西是:

        • 会话状态
        • 缓存

        可以在 WebFarm 中适当配置。

        这是关于如何配置 NLB 的example

        【讨论】:

          【解决方案4】:

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

          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

          【讨论】:

            猜你喜欢
            • 2019-03-19
            • 1970-01-01
            • 2021-02-21
            • 2012-03-23
            • 2013-04-09
            • 2011-02-11
            • 1970-01-01
            • 2019-07-17
            • 2023-03-31
            相关资源
            最近更新 更多