3

私は、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のような高レベルのフレームワークの使用についてはまだ検討していません。

手がかり/提案はありますか?前もって感謝します!

4

1 に答える 1

0

私の唯一の(安全な)オプションは、アプリケーションノードをWebLogicクラスタに追加してクラスタ全体の負荷を分散するか、アプリケーションで再設計を実行することです。

于 2012-02-09T23:55:37.417 に答える