19.3. 負荷分散ポリシー
JBoss クライアント側インターセプター (スタブ) とロードバランサーはいずれも負荷分散ポリシーを使用して新しい要求を送信するサーバーノードを確定します。 この項では JBoss Enterprise Application Platform 内で使用可能な負荷分散ポリシーについて説明します。
19.3.1. クライアント側インターセプターアーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
JBoss Enterprise Application Platform 5 では、 クライアント側インターセプターアーキテクチャーが使用されている時に次の負荷分散オプションを使用できます。 クライアント側スタブは目的のサービスを提供するすべてのノードの一覧を保持します。 各要求に対してこの一覧からノードを選択することが負荷分散ポリシーの役割です。 各ポリシーは 2 つの実装クラスを持っています。 1 つは、 レガシー分離呼び出しアーキテクチャーを使用する EJB2 のようなレガシーサービスが使用するための実装クラスです。 もう 1 つは AOP ベースの呼び出しを使用する EJB3 のようなサービスのための実装クラスになります。
- Round-Robin: 各呼び出しは、 ノードの一覧の順に新しいノードへ配信されます。 最初のターゲットノードは一覧より無作為に選択されます。
org.jboss.ha.framework.interfaces.RoundRobin
(レガシー) とorg.jboss.ha.client.loadbalance.RoundRobin
(EJB3) によって実装されます。 - Random-Robin: 各呼び出しに対して一覧よりターゲットノードを無作為に選択します。
org.jboss.ha.framework.interfaces.RandomRobin
(レガシー) とorg.jboss.ha.client.loadbalance.RandomRobin
(EJB3) によって実装されます。 - First Available: 使用可能なターゲットノードの 1 つがメインターゲットとして選択されてから全てのコールに使用されます。 選択されるメンバーはクラスター内のメンバーの一覧から無作為に選択されます。 ターゲットノードの一覧が変更されると (1 ノードが起動または停止したため)、 現在選択されているノードが使用可能である場合を除き、 ポリシーによって新しいターゲットノードが選択されます。 各クライアント側プロキシは、他のプロキシに関係なく独自のターゲットノードを選択します。 そのため、 特定のクライアントが同じターゲットサービス (EJB など) に対して 2 つのプロキシをダウンロードする場合、各プロキシは独立してターゲットを選択します。 これが「セッションアフィニティ」または「スティッキーセッション」を提供するポリシーの例となります (ターゲットノードは確立されると変更されないため)。
org.jboss.ha.framework.interfaces.FirstAvailable
(レガシー) やorg.jboss.ha.client.loadbalance.aop.FirstAvailable
(EJB3) によって実装されます。 - First Available Identical All Proxies: 「First Available」 ポリシーと同じ動作になりますが、 選択されるターゲットノードは同じターゲットサービスに関連付けられた同じクライアント側 VM のすべてのプロキシで共有されます。 そのため、 特定のクライアントが同じターゲットサービス (EJB など) に対して 2 つのプロキシをダウンロードする場合、 各プロキシは同じターゲットを使用します。
org.jboss.ha.framework.interfaces.FirstAvailableIdenticalAllProxies
(レガシー) やorg.jboss.ha.client.loadbalance.aop.FirstAvailableIdenticalAllProxies
(EJB3) によって実装されます。
上記のいずれもが
org.jboss.ha.framework.interfaces.LoadBalancePolicy
インターフェースを実装します。ユーザーは特殊な動作を必要とする場合にこの単純なインターフェースの独自の実装を自由に作成できます。後半のセクションでは、さまざまなサービスによって使用される負荷分散ポリシーの設定方法について説明します。