Когда вам нужно использовать отдельные домены в Glassfish? - PullRequest
4 голосов
/ 02 августа 2010

Если вы хотите разместить несколько независимых приложений на сервере Glassfish, вам нужны отдельные домены?В частности:

  1. Могут ли приложения в одном и том же домене каким-либо образом мешать друг другу?
  2. Могут ли разные приложения в одном домене прослушивать разные IP-адреса / порты?

Если да, то когда / почему вы фактически используете отдельный домен?

Ответы [ 2 ]

6 голосов
/ 02 августа 2010

С логической точки зрения отдельные домены или сосуществование нескольких приложений в одном домене похожи (вы можете настроить порты HTTP и т. Д.).

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

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

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

1 голос
/ 02 августа 2010

Рассмотрим следующий сценарий: в вашем домене развернуто 2 приложения: облегченное веб-приложение и приложение для обработки бэкэнда (например, выполнение в виде запланированной задачи каждый час и обработка огромных объемов данных). В таком случае у вас может возникнуть проблема с тем, что бэкэнд-приложение будет забирать все ресурсы, которые есть у вашей виртуальной машины, из-за чего веб-приложение перестает отвечать на запросы в экстремальных ситуациях или, что еще хуже, убивает jvm (скажем, из-за ошибки памяти или ошибок пространства perm gen).

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

...