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