我在Web层(总共4个Web服务器)和Web层之间的另一个负载F5负载均衡器(粘性会话)前面有三个分层的.NET Web应用程序和F5负载均衡器(粘性会话)应用程序层(共4个应用程序服务器)。底层数据库是集群的。
问题
通过在Web层和应用程序层之间使用负载均衡器,这是管理会话状态的唯一方法吗?
如果您只在Web层前面使用F5负载均衡器,那么将使用什么机制来处理应用程序层的会话状态?
答案 0 :(得分:2)
如果您不想在负载均衡器级别使用粘性会话,则可以使用2个标准选项进行会话状态管理。
使用状态服务器模式配置应用程序,您可以配置一个服务器以运行会话状态服务,并将所有应用程序配置为指向该服务器。因此状态存储在一台服务器的内存中。
<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>