Несколько JVM против одного сервера приложений

Я имею дело с системой, которая запускает Java-приложение для каждого клиента в своей собственной JVM. У нас есть около полдюжины выделенных серверов, на которых сейчас работает около 100 JVM, и наборы пользовательских сценариев для управления этими JVM. Эта установка действительно показывает свой возраст на данный момент: управление таким количеством JVM становится кошмаром для мониторинга / управления, и мы постоянно имеем дело с проблемами размера кучи. Мы хотели бы перейти к более современному подходу и просто запускать несколько приложений на одном сервере приложений для каждой физической машины. Однако хранение отдельных приложений имеет явные преимущества с точки зрения изоляции (например, ошибки нехватки памяти влияют только на одного клиента). Программный стек каждого клиента предъявляет различные требования к памяти.

Мой вопрос: есть ли способ получить лучшее из обоих миров и запустить несколько приложений в одной JVM (сервер приложений) и при этом сохранить некоторую степень изоляции? Или это просто современный факт жизни, который вам необходим для управления требованиями к памяти для набора приложений в наши дни? Есть ли здесь другие решения, кроме сервера приложений или контейнера Java EE (например, Wildfly или Spring), которые мне здесь не хватает? Похоже, что эта система - воздержание от другой эры!

Ответы на вопрос(4)

Ваш ответ на вопрос