2

JBoss には、セッション Bean のクラスタリングとロード バランシングのための非常に簡単な注釈/構成のセットがあるようですが、GlassFish 3.x のドキュメントには同じ機能がありません。

MyStatefulBeanMyStatelessBean豆の両方があるとしましょう。どちらにも、次の機能が必要です。

  • Bean のクラスターを (任意の数または規模で) 作成し、Bean をラウンド ロビンするソフトウェア ロード バランサーの背後に配置できるようにしたいと考えています。と
  • クラスター化された Bean の 1 つが何らかの理由で失敗した場合、プールから取り出したい

GlassFish フリー/(コミュニティ版) でもこれをサポートしていますか? それとも自分で実装する必要がありますか?

最初の質問に接する: クラスタリング/負荷分散はステートフル Bean からでも意味がありますか? 考えてみると、そうではないと思います...しかし、そうでないことが証明されるまで、問題は両方のタイプの豆に当てはまります!

4

2 に答える 2

1

障害発生時にセッション状態を保持する場合は、まず、アプリケーションの高可用性を有効にする必要があります。管理コンソールを使用している場合、アプリのデプロイ画面にこのチェックボックスがあります。コマンドラインからデプロイする場合は、「asadmin deploy --availabilityenabled=true --target mycluster myapp.ear」を使用します。

Bean がルックアップされると、生成される Bean RMI プロキシ/スタブには、使用可能なすべてのクラスター化された GlassFish インスタンスのリストが含まれます。サーバーの順序はランダムに生成され、RMI スタブはリストの一番上にあるサーバーを選択します。これが、負荷がクラスタ全体に分散される方法です。リモート サーバーに障害が発生すると、リスト内の次のサーバーが選択されます。リモート Bean がステートフル セッション Bean の場合、セッションはフェイルオーバー時に保持されます。

@pdudits が言及しているように、より詳細な内容については、この件に関するドキュメントをお読みください。

お役に立てれば!

于 2012-07-05T16:59:06.480 に答える