私は、RMIに基づいて、複数のWeblogic 10gR3(10.3.0.0)ノードにデプロイされた分散ソリューションの開発に参加しています。ノードの1つはRMIサーバーをホストし、他のノードは外部JNDIプロバイダーを介してRMIサーバーにアクセスします。RMIサーバーを追加してインフラストラクチャを改善しようとしたときに、いくつかの問題に直面しました。
インフラストラクチャの詳細:
-RMIサーバーは、ポート7005の管理対象サーバーで実行されています。
-RMIクライアントは、t3:// hostname:7005のようなリモートJNDIプロバイダーを介してサーバーにアクセスします。
追加のRMIサーバーを作成する際に、これまでに試したことと、それが機能しなかった理由を投稿します。
1)Amazon ELBを使用する->インターネット全体にランタイムポート(7005)を開く必要があるため、これはオプションではありません。これは明らかにセキュリティ上の欠陥です。
2)マルチエンドポイントJNDIプロバイダー(t3:// hostname1:7005、hostname2:7005など)を構成します。これは明らかにJMSキューで機能します->すべての要求はhostname1で実行されているRMIサーバーに送信されました。実際、アプリケーションは正常に機能しました。ただし、hostname1の背後にあるサーバーを故意にクラッシュさせた場合、hostname2にリクエストは送信されませんでした。(リダイレクトする必要がありますか?)
3)HAproxyなどのソフトウェアロードバランサーを使用して、HTTPレイヤーでバランシングする場合、リクエストは「t3 10.3.0.0」として解釈されていたため、HAproxyでHTTP502エラーが発生しました。TCPレイヤーでバランスを取ると、単一のTCP接続が複数のHTTP要求に使用されているかのように、いくつかの「オブジェクトの欠落」エラーが発生し、最初の接続が終了した後、後続の要求はリモートオブジェクトにアクセスできませんでした(推測するだけです)。
4)クラスタ化されたWebLogic環境を使用する気はありませんでした。
5) spring-remoting-clusterのような高レベルのフレームワークの使用についてはまだ検討していません。
手がかり/提案はありますか?前もって感謝します!