29.3. クライアント側のロードバランシング
JBoss EAP メッセージングのクライアント側のロードバランシングでは、単一のセッションファクトリーを使用して作成される後続のセッションをクラスターの異なるノードに接続できます。これにより、セッションがクラスターのノードにスムーズに広がり、特定のノードに集中することがありません。
クライアントファクトリーによって使用されるロードバランシングポリシーを宣言するための推奨される方法は、<connection-factory> リソースの connection-load-balancing-policy-class-name 属性を設定することです。JBoss EAP メッセージングでは、以下の追加設定なしのロードバランシングポリシーが提供され、独自のロードバランシングも実装できます。
- ラウンドロビン
このポリシーでは、最初のノードがランダムに選択され、後続の各ノードが同じ順序で順番に選択されます。
たとえば、ノードの選択順序が、
B、C、D、A、B、C、D、A、BやD、A、B、C、D、A、B、Cのようになります。org.apache.activemq.artemis.api.core.client.loadbalance.RoundRobinConnectionLoadBalancingPolicyをconnection-load-balancing-policy-class-nameとして使用します。- ランダム
このポリシーでは、各ノードはランダムに選択されます。
org.apache.activemq.artemis.api.core.client.loadbalance.RandomConnectionLoadBalancingPolicyをconnection-load-balancing-policy-class-nameとして使用します。- ランダムスティッキー
このポリシーでは、最初のノードがランダムに選択され、後続の接続に再利用されます。
org.apache.activemq.artemis.api.core.client.loadbalance.RandomStickyConnectionLoadBalancingPolicyをconnection-load-balancing-policy-class-nameとして使用します。- 最初の要素
このポリシーでは、最初 (0 番目) のノードが常に返されます。
org.apache.activemq.artemis.api.core.client.loadbalance.FirstElementConnectionLoadBalancingPolicyをconnection-load-balancing-policy-class-nameとして使用します。
また、org.apache.activemq.artemis.api.core.client.loadbalance.ConnectionLoadBalancingPolicy インターフェイスを実装して、独自のポリシーを実装することもできます。