36.4. クライアントサイドロードバランシング


HornetQ のクライアントサイドロードバランシングにより、単一のセッションファクトリーを使用して作成された後続のセッションはクラスターのさまざまなノードに接続できます。これにより、セッションはクラスターのノード間で円滑に分散でき、特定のノードに「集中する」ことがなくなります。
クライアントファクトリーにより使用されるロードバランシングポリシーは設定可能です。HornetQ には 2 つのすぐに使用できるロードバランシングポリシーが用意されており、独自のポリシーを実装し、使用することもできます。
すぐに使用できるポリシーは以下のとおりです。
  • ラウンドロビン。このポリシーを使用すると、最初のノードがランダムに選択され、後続の各ノードが同じ順序で順番に選択されます。
    たとえば、ノードは B、C、D、A、B、C、D、A、B または D、A、B、C、A、B、C、D、A、または C、D、A、B、C、D、A、B、C、D、A の順序で選択できます。
  • ラインダム。このポリシーでは、各ノードがランダムに選択されます。
インターフェース org.hornetq.api.core.client.loadbalance.ConnectionLoadBalancingPolicy を実装することにより、独自のポリシーを実装できます。
使用するロードバランシングポリシーの指定は、JMS を使用するか、コア API を使用するかによって異なります。ポリシーを指定しない場合は、デフォルト値 org.hornetq.api.core.client.loadbalance.RoundRobinConnectionLoadBalancingPolicy が使用されます。
JMS を使用し、サーバーで JNDI を使用して JMS 接続ファクトリーを JNDI に格納する場合は、以下のようにサーバーの JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-jms.xml 設定ファイルでロードバランシングポリシーを直接指定できます。
<connection-factory name="ConnectionFactory">
   <discovery-group-ref discovery-group-name="my-discovery-group"/>
   <entries>
      <entry name="/ConnectionFactory"/>
   </entries>
   <ha>true</ha>
   <connection-load-balancing-policy-class-name>
    org.hornetq.api.core.client.loadbalance.RandomConnectionLoadBalancingPolicy
   </connection-load-balancing-policy-class-name>
</connection-factory>
Copy to Clipboard Toggle word wrap
上記の例では、ランダムな接続ロードバランシングポリシーを使用する JMS 接続ファクトリーがデプロイされます。
JMS を使用し、クライアントサイドで接続ファクトリーを直接インスタンス化する場合は、使用前に HornetQConnectionFactory で setter を使用してロードバランシングポリシーを設定できます。
ConnectionFactory jmsConnectionFactory = HornetQJMSClient.createConnectionFactory(...);
jmsConnectionFactory.setLoadBalancingPolicyClassName("com.acme.MyLoadBalancingPolicy");
Copy to Clipboard Toggle word wrap
コア API を使用する場合は、使用している ClientSessionFactory インスタンスで直接ロードバランシングポリシーを設定できます。
ClientSessionFactory factory = HornetQClient.createClientSessionFactory(...);
factory.setLoadBalancingPolicyClassName("com.acme.MyLoadBalancingPolicy");
Copy to Clipboard Toggle word wrap
ファクトリーが負荷分散するサーバーのセットは以下の 2 つのいずれかの方法で決定できます。
  • サーバーを明示的に指定
  • 検出の使用。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat