|
|
前のページ 1 2 3
|
|
EJBへのロードバランシング
|
EJBクライアントからEJBコンテナへロードバランシングする際に、どのノード(JBossサーバ)上のEJBへリクエストを振り分けるかということを決めるルールをロードバランスポリシーといいます。JBossでは、ロードバランスポリシーを各EJBのhomeスタブ、remoteスタブごとにEJBの配備記述子(jboss.xml)で設定することができます。
ロードバランスポリシーはプラグイン可能なJavaクラスで実装されることになっているため、JBossが用意するポリシーを使うこともできますし、オリジナルのロードバランスポリシーを作成してJBossに組み込むこともできます。
|
ロードバランスポリシーの種類
|
JBoss4.0.1RC1には次のロードバランスポリシーが用意されています。
|
RoundRobin
|
クラスタ内のノードに対して順番に振り分けます。具体的には、以下のようになります。
- 1番目のノードはランダムに選択されます
- 2番目以降のノードは、クラスタが持っているノードリストから次のノードが選択されます
|
|
FirstAvailable
|
初めに振り分けたノードを呼び出し続けます。具体的には、以下のようになります。
- 1番目のノードはランダムに選択されます
- 2番目以降も1番目と同じノードを呼び出します
振り分け対象のノードに障害等が発生した場合は、再度ランダムにノードを選択します。
また、このルールはクライアントごとに適用されます。例えば、SampleEJBのremoteオブジェクトに対して、クライアントAが1番目のノード上のものを選択したとしても、クライアントBは2番目のノード上のremoteオブジェクトを選択する可能性があります。
|
FirstAvailableIdenticalAllProxies
|
同じEJBに対しては、どのクライアントからでも統一的にorg.jboss.ha.framework.interfaces.FirstAvailableと同じルールを適用します。ただし、homeスタブとremoteスタブは区別されます。
例えば、SampleEJBのremoteオブジェクトに対して、クライアントAが初めに1番目のノード上のものを選択したとすると、次のクライアントBもクライアントAが選択した1番目のノード上のSampleEJBのremoteオブジェクトを選択します。
|
ロードバランスポリシーの設定
|
ロードバランスポリシーを設定するには、EJBの配備記述子jboss.xmlの<cluster-config>要素の<home-load-blancepolicy>と<bean-load-balance-policy>要素にロードバランスポリシーのクラス名を記述します。
ステートレスセッションbeanでの設定例です。
|
$ vi <ejb-jar>/META-INF/jboss.xml
<jboss>
<enterprise-beans>
<session>
<ejb-name>StatelessSession</ejb-name>
<jndi-name>StatelessSession</jndi-name>
<clustered>True</clustered>
<cluster-config>
<home-load-balance-policy>
org.jboss.ha.framework.interfaces.RoundRobin
</home-load-balance-policy>
<bean-load-balance-policy>
org.jboss.ha.framework.interfaces.FirstAvailable
</bean-load-balance-policy>
</cluster-config>
</session>
</enterprise-beans>
</jboss>
|
|
なお、<home-load-blance-policy>と<bean-load-balance-policy>要素の設定はオプションです。
これらの設定を行わなかった場合のデフォルトのロードバランスポリシーは次のようになっています。
|
表1:デフォルトのロードバランスポリシー (画像をクリックすると別ウィンドウに拡大表示します)
|
次回は
|
次回は、図1で今回触れなかった設定について解説していきます。
|
前のページ 1 2 3
|
|
|
|
著者プロフィール
日本ヒューレット・パッカード株式会社 水野 浩典
1991年、同社入社以来、エンタープライズ環境でHP-UXを使用しているお客様のサポートの仕事に従事。その後、IA-64(Itanium)とPA-RISCのダイナミックトランスレータの開発経験を経て、Java、J2EEベースのベンチマークや障害解析、コンサルティングを経験。現在は、オープンソースのコンサルティングやサポートを行っている。8bitのバイト列やアセンブラコードを見て、解析することを何よりの楽しみ(?)にしています。
|
|
著者プロフィール
日本ヒューレット・パッカード株式会社 佐藤 修一
2000年より自社J2EEサーバの開発/国際化/テストに従事。以来、商用/オープンソース問わずJ2EEベースのシステム構築、ベンチマーク等を担当。現在は主にオープンソースのJ2EEサーバである「JBoss AS」を含めた「JEMS製品」や、同じくオープンソースのRDBMS「MySQL」のコンサルティングやサポートを精力的に行いながら、毎日、ソースコードと戯れています。
|
|
|
|