Перемещение приложения Asp.net в среду с балансировкой нагрузки - PullRequest
5 голосов
/ 20 августа 2010

У меня есть приложение, которое хорошо работает на одном сервере.Теперь мой клиент хочет переместить его в среду с балансировкой нагрузки.Какие вещи могут меня укусить при этом?

В настоящее время я знаю

  • Состояние сеанса и
  • Ключ компьютера.

Оба они описаны, например, здесь , поэтому я ищу дополнительные вещи к этому.

Эти похожие вопросы , но первое относится к балансировке нагрузки в целом, и я ищу руководство по миграции, а второе - к конкретной проблеме.

Ответы [ 2 ]

2 голосов
/ 20 августа 2010

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

В среде с балансировкой нагрузки последующие запросы могут отправляться на разные серверы, и база данных будет дважды проверена на наличие одних и тех же данных.Или больше, если у вас более 2 серверов.Это само по себе неплохо, но вам бы посоветовали следить за этим.Если база данных находится в очереди, преимущества запуска веб-фермы могут быть сведены на нет.Как всегда, тесты, профили и запуск тестов.

Одним из способов решения этой проблемы является проведение липких сеансовЭто основанный на маршрутизаторе подход.как только сеанс пользователя установлен, все запросы от этого пользователя направляются на один и тот же сервер.Это имеет свои недостатки, в частности, потенциальное снижение эффективности распределения нагрузки, не говоря уже о проблемах, когда вы теряете сервер.Кроме того, это поможет, только если вы кэшируете в основном пользовательские данные, такие как постраничные результаты поиска, которые кэшируются только в течение короткого времени.

Другое решение состоит в том, чтобы распределить в кеше памяти такиекак memcached, Velocity или NCache.Есть и другие, но это те, с которыми я работал.

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

0 голосов
/ 20 августа 2010

Посмотрите эту статью , в которой описаны некоторые советы по подготовке приложения asp.net для балансировки нагрузки.

...