Балансировка нагрузки в Asp.net, что я должен учитывать при разработке? - PullRequest
8 голосов
/ 17 августа 2011

При работе над одним проектом ASP.NET, размещенным в веб-ферме, включая два внешних интерфейса и балансировку нагрузки, у нас возникла одна проблема, связанная с состоянием сеанса ASP.NET, когда было установлено значение «InProc», и мы обнаружили, что он не работает должным образом с балансировкой нагрузки., и мы должны рассмотреть использование режима «SQLServer».

Итак, мне интересно, есть ли какие-либо другие моменты (Сеансы, Кэширование, Безопасность, загрузка файлов, Соединения SQL ...), которые мы должны учитывать при разработке и развертывании в такой среде.

Ответы [ 5 ]

3 голосов
/ 17 августа 2011

Microsoft предлагает некоторые рекомендации по этому вопросу. У них есть статья базы знаний со ссылками на другие ресурсы, которые вам понадобятся.

http://support.microsoft.com/kb/815162

О, и как всегда, у ScottGu есть отличная статья и более крутой способ сделать это. Я только что нашел это, и это выглядит очень многообещающе: Microsoft Web Farm Framework http://weblogs.asp.net/scottgu/archive/2010/09/08/introducing-the-microsoft-web-farm-framework.aspx

, а более поздний Web Framework Framework Site имеет множество доступных ресурсов. http://www.iis.net/download/webfarmframework

2 голосов
/ 17 августа 2011

Хотя я никогда не использовал его, я обнаружил, что статьи Омара аль-Забира на CodeProject.com кажутся довольно полезными.

В его статье " 99,99% доступной ASP.NET и SQL Server производственной архитектуры SaaS " рассматриваются некоторые вопросы балансировки нагрузки.

1 голос
/ 17 августа 2011

На моем сервере разработки я настроил IIS для использования 3 рабочих процессов (веб-сада) в качестве теста с плохой настройкой для нашей среды с балансировкой нагрузки.

Мы не используем данные сессии / приложения. Наш балансировщик нагрузки настроен с учетом соответствия адресов, поэтому запросы с одного и того же IP-адреса направляются на один и тот же сервер, что позволяет нам кэшировать некоторые пользовательские данные. Наша самая большая проблема заключалась в том, что кэшированные данные по всей ферме не были синхронизированы, что было решено путем обертывания кэша простой сетевой библиотекой для отправки сообщений с измененным кэшированным элементом на другие серверы.

1 голос
/ 17 августа 2011

См. Мой ответ здесь о вещах, которые следует учитывать при состоянии сеанса.

Ссылка на эту статью , в которой содержится много полезной информации о состоянии сеанса.

0 голосов
/ 17 августа 2011

Есть много вещей, которые вы должны принять во внимание. Вот статья, в которой рассматриваются многие соображения при переходе в распределенную среду:

http://eralokpandey.wordpress.com/2010/03/31/load-balancing-in-asp-net-and-web-farm/

...