Несколько сервисов на одном сервере JBoss? - PullRequest
1 голос
/ 11 октября 2009

Мы разрабатываем несколько новых сервисов, которые будут работать на JBoss и будут доступны через API REST. Это будут приложения Java, объединенные в файлы EAR. Это хорошая практика для развертывания этих служб на одном сервере JBoss?

Это упростит разработку, развертывание и тестирование.

Не уверен, есть ли какие-то большие недостатки. Будет ли ограниченная память, которой приложения будут делиться? В каком случае будет лучше развертывание на отдельных серверах? Может ли одно приложение вызывать сбой других (т. Е. Перегружать всю память)?

Ответы [ 2 ]

2 голосов
/ 11 октября 2009

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

Эти приложения будут совместно использовать доступную память и один jvm, а ошибки в одном приложении могут привести к остановке сервера. Поэтому вы захотите контролировать кучу сервера приложений, а также некоторые другие «жизненно важные функции». Вы можете сделать это вручную с помощью jconsole (часть JDK) или автоматически с помощью такого инструмента, как превосходный hyperic . Сам Hyperic, кстати, основан на сервере JBoss.

0 голосов
/ 11 октября 2009

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

Вот упрощенный пример: скажем, на вашем сервере доступно 4 ГБ ОЗУ для приложений. Для службы 1 требуется 2 ГБ ОЗУ, а для служб 2 и 3 - 1 ГБ. Если вы получаете много трафика в Сервисе 3, единственный простой способ развернуть большую емкость - это запустить новый сервер с большей частью ОЗУ, выделенной для Сервиса 1 и Сервиса 2, даже если они не получают много трафика.

На самом деле ограничение может быть ОЗУ, ЦП или IO. Дело в том, что если вы развертываете несколько служб вместе, вы ограничиваете свою гибкость, когда речь идет о масштабировании.

Вам нужно определить, будет ли это реальной проблемой в вашем случае.

...