【问题标题】:.NET Web-Application and Load Balancer.NET Web 应用程序和负载均衡器
【发布时间】:2012-01-11 03:41:09
【问题描述】:

我有三层 .NET Web 应用程序,在 Web 层(总共 4 个 Web 服务器)前面带有 F5 负载均衡器(粘性会话),在 Web 层和 Web 层之间有另一个负载 F5 负载均衡器(粘性会话)应用层(总共 4 个应用服务器)。底层数据库是集群的。

问题

通过在 Web 层和应用层之间使用负载平衡器,这是管理会话状态的唯一方法吗?

如果您只在 Web 层前使用 F5 负载均衡器,将使用什么机制来处理应用层的会话状态?

【问题讨论】:

    标签: .net load web load-balancing


    【解决方案1】:

    如果您不想在负载平衡器级别使用粘性会话,则可以使用 2 个标准选项进行会话状态管理。

    See msdn Session-state

    使用状态服务器模式配置您的应用程序,您可以配置一台服务器来运行会话状态服务,并且所有应用程序都配置为指向该服务器。所以状态存储在一台服务器的内存中。

     <configuration>
      <system.web>
        <sessionState mode="StateServer"
          stateConnectionString="tcpip=SampleStateServer:42424"
          cookieless="false"
          timeout="20"/>
      </system.web>
    </configuration>
    

    另一个选项是使用 SQL Server 模式配置您的应用程序。状态存储在 SQL 数据库中。这是最安全的选择,因为会话状态是持久的。

    <configuration>
      <system.web>
        <sessionState mode="SQLServer"
          sqlConnectionString="Integrated Security=SSPI;data 
            source=SampleSqlServer;" />
      </system.web>
    </configuration>
    

    【讨论】:

      最近更新 更多