У меня есть один WAR (app.war )и один контейнер (Tomcat, Jetty, Glassfish, что угодно ). Моя цель — развернуть по запросу сотни экземпляров одного и того же веб-приложения в контейнере.
http://foo/app1 --> app.war
http://foo/app2 --> app.war
http://foo/app3 --> app.war
...
http://foo/appN --> app.war
Несколько очевидных способов добиться этого.:
- В Tomcat создайте один файл context.xml для каждого приложения (с именем appN.xml ), все указывающие на один и тот же файл WAR. Другие контейнеры имеют аналогичные методы
- Проблема с этим подходом.:Он взорвет WAR N раз, занимая много места на диске.
- Используйте символические ссылки для создания папок webapp/{app1,app2,appN}, указывающих на развернутую версию приложения..война. Это предотвратит взрыв дискового пространства, но JVM по-прежнему загружает в память множество повторяющихся JAR-файлов
- . Используйте какую-нибудь общую папку lib для хранения большинства JAR-файлов (и комбинацию двух предыдущих вариантов ).
Интересно, есть ли лучший способ сделать это?. В идеале создание нового экземпляра не должно занимать НИКАКОГО больше места на диске (, кроме маргинальных файлов конфигурации ), а занимать только память, связанную со стеками выполнения потоков и другими распределениями времени выполнения.
Есть идеи?
задан Aldo Bucchi 17 April 2012 в 03:05
поделиться