Как обрабатывать переменные приложения ASP.NET в веб-ферме с балансировкой нагрузки - PullRequest
4 голосов
/ 14 марта 2012

Я перемещаю сайт с одного сервера на ферму серверов, состоящую из трех веб-серверов за балансировщиком нагрузки.Кажется, достаточно просто справиться с управлением сеансами - просто сделайте сеансы «липкими» в Балансировщике нагрузки (мы оценивали управление сеансами на основе SQL, но решили продолжить использовать управление сеансами InProc для эффективности).используйте значительный объект конфигурации, который мы храним в пространстве приложения (например, Application [ObjName]).Поскольку объект конфигурации загружается из памяти, у нас нет проблем, пока кто-то не внесет изменения в конфигурацию.На этом этапе приложение на хост-сервере будет иметь изменения, и база данных будет иметь изменения.Однако два других сервера не будут иметь изменений.Мы обсуждали наличие правила опроса «один раз в минуту» (например, для новых сессий), вместо этого хранение информации в сессии (не очень эффективно) и т. Д. У всех есть серьезные недостатки.Мне интересно, что делают другие люди.Можно ли сохранить пространство приложения на SQL Server, но пространство сеанса inproc?Буду признателен за любую помощь или понимание о том, как справиться с этим!

Ответы [ 2 ]

3 голосов
/ 14 марта 2012

Приложение [] всегда будет основано на локальной памяти, поэтому независимо от того, что вы собираетесь сделать, нужно внести некоторые изменения в код.Поэтому поместите его в другое место, например, в распределенный кеш, AppFabric , NCache , memcached.net и т. Д. Когда кто-то вносит изменения в конфигурацию, обновите кеш,когда нужно прочитать настройки прочитанные из кеша.Распространение / синхронизация осуществляется самим кешем.

0 голосов
/ 09 мая 2012

В настоящее время мы решили использовать NCache, поскольку у нас есть 4 веб-сервера для наших веб-ферм.Этот сторонний инструмент кеширования может прекрасно работать с балансировщиком нагрузки и прост в настройке (только его версия Express бесплатна. Для версий Professional и Enterprise только Developer Machine бесплатна).Это также действительно быстро и стабильно.Вы должны настроить NChache на каждом сервере и настроить балансировщик нагрузки для работы со всеми из них.Надеюсь, это поможет.

...