Речь идёт о возможности запуска каждого webapp в ServletContainer в своей собственной JVM. Нет ли такого решения и если нет, то почему бы и нет?
Вкратце схема такая: один постоянно работающий http сервер, который в зависимости от настроек редиректит запросы к нужному webapp, каждый из которых работает в собственной jvm. Общение между ними либо по http, либо ещё каким транспортом, не принципиально и зависит от требований.
По сути то, что многие делают, имея связку Apache и один или несколько Tomcat или Jetty. Только всё бы это было единым продуктом, умеющим работать как Servlet Container.
Что это даёт? Возможность перезапустить jvm только для нужного webapp. Возможность задать параметры работы jvm и переменные окружения свои для каждого webapp. Возможность лимитировать процессы на уровне ОС.
Ну собственно вопрос — может кто встречался с таким продуктом и если его нет, то это значит, что такое никому не нужно?
Re: ServletContainer - отдельная JVM для каждого webapp - почему нет?
Здравствуйте, junixar, Вы писали:
J>Речь идёт о возможности запуска каждого webapp в ServletContainer в своей собственной JVM. Нет ли такого решения и если нет, то почему бы и нет?
Вот же было недавно. http://rsdn.ru/forum/java/5213619.1
Оно не особо кому нужно, поэтому бесплатного нет. Java удел этерпрайза, а там не проблема выделить сервер. А такое решение имеет смысл для Java хостинга, который особой популярностью не пользуется.
Re: ServletContainer - отдельная JVM для каждого webapp - почему нет?
Здравствуйте, junixar, Вы писали:
J>Ну собственно вопрос — может кто встречался с таким продуктом и если его нет, то это значит, что такое никому не нужно?
В двух проектах использовали nginx плюс несколько Jetty(каждый в своей JVM) во всех конфигурациях включая продакшин.
Потребности обьединять это в один продукт замечено не было.
nginx работал в режиме "запустили и забыли" с редкими рестартами при добавлении новых приложений(ну или при других изменениях конфига) и поэтому в большинстве деплойментов просто не участвовал. Иногда были релизы с изменениями только в одном веб приложении.
Я сам принимал участие и в разработке(запуск на локальной машине) и в деплойменте на тестовый и продакшин сервера.
Ни в одном из случаев я не замечал недостатков интеграции этого всего в единый продукт.
Причем все описанные Вами преимущества были получены: J>Возможность перезапустить jvm только для нужного webapp. J>Возможность задать параметры работы jvm и переменные окружения свои для каждого webapp. J>Возможность лимитировать процессы на уровне ОС.
Кроме того в одном из проектов удалось переложить на nginx все статические файлы HTML + CSS + JS и отделить все это от Java части.
Получилось довольно неплохо.
Может у Вас какие-то специфические условия, которых у нас не было?
Проектирование велосипедов для слепых жирафов
Re: ServletContainer - отдельная JVM для каждого webapp - почему нет?
Здравствуйте, junixar, Вы писали:
J>Ну собственно вопрос — может кто встречался с таким продуктом и если его нет, то это значит, что такое никому не нужно?
Ещё Jelastic что-то подобное пилит. Но там больше ориентация на облако и масштабирование, а не втюхивание кучи JVM в одну машину.
Re: ServletContainer - отдельная JVM для каждого webapp - почему нет?
Здравствуйте, junixar, Вы писали:
J>Речь идёт о возможности запуска каждого webapp в ServletContainer в своей собственной JVM. Нет ли такого решения и если нет, то почему бы и нет?
J>Вкратце схема такая: один постоянно работающий http сервер, который в зависимости от настроек редиректит запросы к нужному webapp, каждый из которых работает в собственной jvm. Общение между ними либо по http, либо ещё каким транспортом, не принципиально и зависит от требований.
J>По сути то, что многие делают, имея связку Apache и один или несколько Tomcat или Jetty. Только всё бы это было единым продуктом, умеющим работать как Servlet Container.
J>Что это даёт? Возможность перезапустить jvm только для нужного webapp. Возможность задать параметры работы jvm и переменные окружения свои для каждого webapp. Возможность лимитировать процессы на уровне ОС.
J>Ну собственно вопрос — может кто встречался с таким продуктом и если его нет, то это значит, что такое никому не нужно?
AFAIK google app engine построен на подобной задумке. Под веб приложение выделяется из пула виртуальная машина с одним контейнером (jetty)
Re: ServletContainer - отдельная JVM для каждого webapp - почему нет?
Здравствуйте, junixar, Вы писали:
J>Речь идёт о возможности запуска каждого webapp в ServletContainer в своей собственной JVM. Нет ли такого решения и если нет, то почему бы и нет?
J>Вкратце схема такая: один постоянно работающий http сервер, который в зависимости от настроек редиректит запросы к нужному webapp, каждый из которых работает в собственной jvm. Общение между ними либо по http, либо ещё каким транспортом, не принципиально и зависит от требований.
J>По сути то, что многие делают, имея связку Apache и один или несколько Tomcat или Jetty. Только всё бы это было единым продуктом, умеющим работать как Servlet Container.
J>Что это даёт? Возможность перезапустить jvm только для нужного webapp. Возможность задать параметры работы jvm и переменные окружения свои для каждого webapp. Возможность лимитировать процессы на уровне ОС.
J>Ну собственно вопрос — может кто встречался с таким продуктом и если его нет, то это значит, что такое никому не нужно?
Теоретически то что вы описали можно сделать используя OSGI\Fabric\Apache ZooKeeper\features ну или DOSGI . В случае с ZooKeeper взаимодействие будет через ноды ну или ActiveMQ прикрутить не проблема. В случае с dosgi будет решатся средствами Osgi контейнера на сколько я вкурсе. Тоесть либо караф либо вирго. Либо что там ещё можно придумать.