Масштабирование ASP.NET сервер состояния сеанса
-
20-08-2019 - |
Вопрос
Сценарий:
Веб-сайт размещен на трех серверах с использованием IIS на каждом.
Все три сервера кластеризованы с использованием программного обеспечения для балансировки сетевой нагрузки, поставляемого вместе с Windows Server 2003.
Все три сайта настроены на хранение состояния сеанса на отдельном сервере, который был обозначен как "сервер состояния".
Меня попросили увеличить масштаб "государственного сервера".Есть ли способ, которым я могу иметь более одного сервера состояния и синхронизировать состояние между ними, так что, если один из серверов состояния выйдет из строя, остальные смогут обслуживать информацию о состоянии?
Решение
Я бы выбрал memcached.Вы могли бы настроить его на каждом из веб-серверов, а затем масштабировать с каждым новым добавляемым вами веб-сервером.Я уже нашел пару клиентов на codeplex раньше.
Другие советы
Мы используем Масштабирование сервера состояний для этого я и работаю, и он прекрасно справляется со своей задачей и предельно прост в настройке.Я понимаю, что Microsoft также работает над аналогичным продуктом под названием Скорость, но у меня нет никакого опыта в этом.
Единственным недостатком SOSS является то, что за это приходится платить, но у меня не было ничего, кроме отличного опыта взаимодействия с их командой продаж и поддержки.Если вы в конечном итоге получите лицензию, сделайте мне одолжение и дайте им знать, что Дэниел из Gratis прислал вас ;)
Вы ищете технологию распределенного кэширования.Microsoft Velocity - это тот, в котором Microsoft опубликовала примеры замены значения по умолчанию ASP.NET Состояние сеанса на скорость, позволяющую распространять его.Существуют и другие поставщики кэширования, такие как Memcache.
Редактировать: Обновление этого ответа для получения информации, более актуальной для текущего времени, этот тип функциональности встроен в Windows Azure с продуктом AppFabric.Некоторую краткую информацию об этом можно посмотреть здесь: Виртуальный запуск Windows Server и Azure AppFabric 20 мая
База данных сеансов на сервере SQL может быть легко масштабирована с небольшими изменениями кода и конфигурации.Вы можете привязывать asp.net сеансы к базе данных сеансов, и независимо от того, какой веб-сервер в вашей ферме обслуживает запрос, сопоставление sql-сервера состояния на основе идентификатора сеанса работает безупречно.Вероятно, это один из лучших способов масштабирования ASP.NET Состояние сеанса с использованием SQL server.Для получения дополнительной информации перейдите по ссылке