Веб-приложение .NET и балансировщик нагрузки - PullRequest
2 голосов
/ 02 декабря 2011

У меня есть три многоуровневых веб-приложения .NET с балансировщиком нагрузки F5 (липкие сессии) перед веб-уровнем (всего 4 веб-сервера) и другое балансировщик нагрузки F5 (липкие сессии) между веб-уровнем и уровень приложений (всего 4 сервера приложений). Основная база данных кластеризована.

Вопросы * * 1003

Используя балансировщик нагрузки между веб-уровнем и уровнем приложения, это единственный способ управлять состоянием сеанса?

Если бы вы использовали только балансировщик нагрузки F5 перед веб-уровнем, какой механизм использовал бы для обработки состояния сеанса на уровне приложения?

1 Ответ

2 голосов
/ 02 декабря 2011

Вы можете использовать 2 стандартные опции для управления состоянием сеанса, если не хотите использовать липкие сеансы на уровне балансировки нагрузки.

См. Msdn Состояние сеанса

Сконфигурируйте свои приложения в режиме State Server, вы можете настроить один сервер для запуска службы состояний сеансов, и все приложения будут настроены для указания на этот сервер.Таким образом, состояние хранится в памяти на одном сервере.

 <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>
...