Несколько компонентов развернуто на одном сервере приложений - PullRequest
1 голос
/ 30 января 2012

Хотя этот вопрос в первую очередь интересует Java / GlassFish, я, безусловно, думаю, что он применим к любой платформе / серверу приложений.

Возможно ли для развертывания нескольких экземпляроводин и тот же JAR, WAR или EAR для того же сервера GlassFish, в целях масштабирования?То есть, если у меня есть MyApp.ear, и, похоже, мне нужно увеличить его, чтобы справиться с резким скачком нагрузки, могу ли я повторно развернуть 2+ экземпляра MyApp.ear на том же сервере GlassFish?

Это практично сделать это?

Ответы [ 3 ]

2 голосов
/ 31 января 2012

это сильно зависит от вашего приложения.В общем случае не проблема иметь несколько экземпляров любого модуля, если: - они не используют один и тот же военный контекст и - не используют одинаковые имена JNDI, например, для EJB.

Вопрос в том, почемуты бы сделал это?Обычно у вас есть два варианта масштабирования приложений и серверов Java EE.Горизонтальный и вертикальный.Горизонтальный означает наличие нескольких экземпляров сервера приложений на многих (меньших) компьютерах.Вертикальный означает несколько экземпляров сервера приложений на одной (большей) машине.Если вы посмотрите на масштабирование и кластеризацию Java EE, ответ будет таким: вы не собираетесь «масштабировать» (мульти-развертывание) свое приложение, а собираетесь масштабировать экземпляры сервера приложений.Здесь есть хорошая вводная статья о кластеризации с GlassFish: http://glassfish.java.net/public/clustering31.html Включая подробный обзор топологии и архитектуры.

Единственная причина, по которой я видел людей, пытающихся развернуть одно и то же приложение дважды или более, чтобыОдин сервер приложений заключается в том, что они ищут разные версии, запущенные одновременно.Существует функция GlassFish, которая называется «Управление версиями приложений».Посмотрите на приведенный ниже скриншот: http://www.youtube.com/watch?v=lgbr_Hywawc Но даже эта функция не позволит вам запускать их параллельно, но вы можете развернуть другую версию в своих экземплярах.

Спасибо,M

2 голосов
/ 30 января 2012

Это определенно возможно на JBoss, по крайней мере, поэтому я полагаю, что это также на GlassFish. Интересно, однако, как это помогло бы с масштабированием? Если вам не хватает производительности на одном сервере, вы можете просто посмотреть на настройку GlassFish. Вероятно, вы можете настроить параметры JVM для обработки пиковых нагрузок.

Я думаю, что для масштабирования Java-приложения вы должны запускать его на разных серверах. Вы можете сделать это для всего вашего приложения или его части. (например, если у вас есть многоуровневая архитектура, ваши уровни могут работать на разных серверах, это потребует некоторого или большого количества рефакторинга)

0 голосов
/ 30 января 2012

Я не очень разбираюсь в архитектуре предприятия, но думаю, что можно запустить два экземпляра в одной и той же JVM. Это не хорошо масштабируется, хотя. Возможно, вы захотите рассмотреть распределенную архитектуру.

...