複数のかなり独立したアプリケーションを Glassfish サーバーでホストしたい場合、別のドメインが必要ですか? 特に:
- 同じドメイン内のアプリケーションが何らかの方法で互いに干渉することはありますか?
- 同じドメイン内の異なるアプリは、異なる IP アドレス/ポートでリッスンできますか?
もしそうなら、いつ/なぜ実際に別のドメインを使用しますか?
複数のかなり独立したアプリケーションを Glassfish サーバーでホストしたい場合、別のドメインが必要ですか? 特に:
もしそうなら、いつ/なぜ実際に別のドメインを使用しますか?
論理的な観点からは、ドメインを分離したり、1 つのドメインに複数のアプリを共存させたりすることは似ています (HTTP ポートなどを構成できます)。
主な違いは、1 つの JVM ですべてのアプリを実行する場合と、複数の JVM を使用する場合があることです。これは大きな違いを生む可能性があります。顧客サイトの 1 つで、最初はすべてを 1 つのドメイン/JMV にデプロイしましたが、パフォーマンス、特にガベージ コレクション時間が向上したため、最終的にいくつかのドメイン/JVM にデプロイを分割することにしました。はい、アプリケーションは干渉する可能性がありますが、非常に間接的な方法です。
また、Java EE アプリは実際にシャットダウンしたり起動したりすることはできないため、ドメインは電源を入れたり切ったりできる最小単位です。場合によっては、便利です。
最後に、app など、ドメインごとのものがあります。サーバーのログレベル、タイマーの永続性など。このような設定の異なる 2 つのアプリが必要な場合は、2 つのドメインが必要になります。
このシナリオを考えてみましょう: ドメインにデプロイされた 2 つのアプリケーションがあります: 軽量フロントエンド アプリとバックエンド処理アプリ (1 時間ごとにスケジュールされたタスクとして実行され、大量のデータを処理するとします)。このようなシナリオでは、VM が持つすべてのリソースをバックエンド アプリが占有するという問題が発生し、極端なシナリオではフロントエンド アプリが応答しなくなる可能性があります。さらに悪いことに、jvm を強制終了します (メモリ不足エラーや perm gen space エラーなど)。
それを 2 つのドメインに分割すると、たとえバックエンドが停止したとしても、他のアプリケーションは独自の VM とメモリを使用できるため安全です。