私は1つのWAR(app.war)と1つのコンテナ(Tomcat、Jetty、Glassfishなど)を持っています。 私の目標は、オンデマンドで、この同じWebアプリケーションのインスタンスをコンテナにデプロイすることです。これを達成する同じWAR(複数の異なるコンテキスト、同じコンテナ)の複数のインスタンスを効率的にデプロイ
http://foo/app1 --> app.war
http://foo/app2 --> app.war
http://foo/app3 --> app.war
...
http://foo/appN --> app.war
いくつかの明白な方法:Tomcatので
- 、すべて同じWARを指し、(appN.xml命名)各アプリケーションのための1つのcontext.xmlファイルを作成します。他の容器は、このアプローチと同様の方法
- 問題を持っている:それは、Webアプリケーション/ {APP1、APP2、APPN}フォルダを作成する
- 使用シンボリックリンクをディスクスペースの多くを取って、WAR N回爆発しますapp.warの展開バージョンを指しています。これにより、ディスクスペースの爆発を防ぎますが、JVMはまだ多くの重複JARをメモリにロードしています。
- ほとんどのjar(および上記2つのオプションの組み合わせ)を含む共有libフォルダをいくつか使用します。
もっと良い方法があるのだろうかと思います。理想的には、新しいインスタンスを作成すると、余分なディスクスペース(余分な構成ファイル以外)を占めてはならず、スレッド実行スタックやその他の実行時割り当てに関連するメモリのみを使用してください。
アイデア?
マルチテナントアプリケーションとしてアプリケーションを書き直すことを検討しますか?まったく同じWARとコードのインスタンスが100件ある場合は、ルートコンテキストにデプロイされるWARを1つだけ設計することを検討しますか? – beny23
@ beny23私が取り組んでいるいくつかのことについても、丁寧な説明が私を助けてくれます。あなたは1つを提供することができますか? –
私は以下の回答を掲示しましたが、あなたがなぜこのようにしたいのかを教えていただければ、よりよいものを投稿することができます。 – ccleve