масштабирование моего веб-приложения с использованием n серверов приложений и dao в качестве веб-службы - PullRequest
1 голос
/ 04 февраля 2012

Предположим, у меня есть несколько серверов приложений, таких как APP1, APP2, APP3 ... APPN.

Теперь все серверы приложений должны иметь доступ к одной и той же БД.

Так что я собираюсь использовать DAO вместес БД на отдельной машине и отображением DAO в качестве веб-службы

Поможет ли это мне в масштабировании моего веб-приложения?

Я планирую использовать следующую архитектуру

           load banncer
 appS1  appS2   .....        appSn   

       dao as webservice
       DB

это хорошая идея?Как я могу управлять сессионным управлением в такой архитектуре?

1 Ответ

1 голос
/ 04 февраля 2012

То, что у вас есть, в порядке. Но DAO как веб-сервис может не справиться с возрастающей нагрузкой, плюс запросы веб-сервисов могут увеличить нагрузку на сеть. Я бы посоветовал сохранить приложение таким, каким оно есть, добавить кеширование (может потребоваться изменение кода) и масштабировать серверы приложений и базу данных.

Для горизонтального масштабирования общий подход заключается в добавлении большего количества серверов приложений и большего количества подчиненных в вашу СУБД. Обычно это сопровождается добавлением серверов кэширования, таких как MemcacheD, которые используются для кэширования ваших объектов-значений, и, как правило, часто требуемых объектов, которые не изменяются со временем. Кэширование отвечает быстрее, чем запрос, так как результаты кэшируются.

Вышеупомянутый подход мы использовали в течение восьми лет. С недавними изменениями в способе хранения данных и доступности инфраструктуры; режим дерзкий ( может быть реальная боль в шее, чтобы изменить существующее приложение ) шаг состоит в том, чтобы изменить ваше приложение (частично или полностью), чтобы использовать хранилище данных no-sql, эти хранилища данных специально созданы тяжелое чтение-запись. Есть много вариантов, если вы идете по этому пути - Кассандра, MongoDB, Динамо и многие другие

...