36.5. クラスターのメンバーを明示的に指定


場合によっては、UDP がネットワークで有効にならず、クライアントがクラスター内のサーバーのリストを検出する、またはサーバーがクラスター内の他のサーバーを検出するために、UDP サーバー検出を使用できないことがあります。
この場合、クラスター内のサーバーのいるとは各ノードとクライアントサイドで明示的に指定できます。これは以下のように行います。

36.5.1. クライアントサイドでのサーバーのリストの指定

これは、JMS を使用するかコア API を使用するかによって異なります。

36.5.1.1. JMS を使用してサーバーのリストを指定

JMS と JMS サービスを使用して JMS 接続ファクトリーインスタンスをサーバーの JNDI に直接ロードする場合は、サーバーサイドの設定ファイル JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-jms.xml でサーバーのリストを指定できます。以下に例を示します。
<connection-factory name="ConnectionFactory">
   <connectors>
      <connector-ref connector-name="my-connector1" 
       backup-connector-name="my-backup-connector1"/>
      <connector-ref connector-name="my-connector2" 
       backup-connector-name="my-backup-connector2"/>
      <connector-ref connector-name="my-connector3" 
       backup-connector-name="my-backup-connector3"/>
   </connectors>
   <entries>
      <entry name="/ConnectionFactory"/>
   </entries>
</connection-factory>
Copy to Clipboard Toggle word wrap
connection-factory 要素には、ゼロ個以上の connector-ref 要素を含めることができます。これらの各要素はconnector-name 属性とオプションの backup-connector-name 属性を指定します。connector-name 属性はライブコネクターとして使用される JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-configuration.xml で定義されたコネクターを参照します。backup-connector-name はオプションであり、指定された場合は、hornetq-configuration.xml で定義されたコネクターも参照します。コネクターの詳細については、14章トランスポートの設定 を参照してください。
接続ファクトリーは [コネクター, バックアップコネクター] のペアのリストを保持します。これらのペアは、クラスターへの接続の作成時にクライアントサイドでクライアント接続ロードバランシングポリシーによって使用されます。
JMS を使用し、JNDI を使用していない場合は、HornetQConnectionFactory をインスタンス化するときに [コネクター, バックアップコネクター] ペアのリストを直接指定することもできます。
List<Pair<TransportConfiguration, TransportConfiguration>> serverList = 
        new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();

serverList.add(new Pair<TransportConfiguration, 
        TransportConfiguration>(liveTC0, backupTC0));
serverList.add(new Pair<TransportConfiguration, 
        TransportConfiguration>(liveTC1, backupTC1));
serverList.add(new Pair<TransportConfiguration, 
        TransportConfiguration>(liveTC2, backupTC2));

ConnectionFactory jmsConnectionFactory = HornetQJMSClient.createConnectionFactory(serverList);

Connection jmsConnection1 = jmsConnectionFactory.createConnection();

Connection jmsConnection2 = jmsConnectionFactory.createConnection();
Copy to Clipboard Toggle word wrap
上記のコード例により、TransportConfiguration オブジェクトのペアのリストが作成されます。各 TransportConfiguration オブジェクトには、特定のサーバーと接続を確立する方法に関する情報が含まれます。
HornetQConnectionFactory インスタンスを作成してコンストラクターのサーバーのリストを渡します。このファクトリーにより作成されたすべてのコネクターは、サーバーのリストに適用されたクライアント接続のロードバランシングポリシーに従って、接続を作成します。

36.5.1.2. コア API を使用したサーバーのリストの指定

以下の例のように、ClientSessionFactory インスタンスの作成時にサーバーのリストを直接指定します。
List<Pair<TransportConfiguration, TransportConfiguration>> serverList = 
        new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();

serverList.add(new Pair<TransportConfiguration, 
        TransportConfiguration>(liveTC0, backupTC0));
serverList.add(new Pair<TransportConfiguration, 
        TransportConfiguration>(liveTC1, backupTC1));
serverList.add(new Pair<TransportConfiguration, 
        TransportConfiguration>(liveTC2, backupTC2));

ClientSessionFactory factory = HornetQClient.createClientSessionFactory(serverList);

ClientSession session1 = factory.createClientSession(...);

ClientSession session2 = factory.createClientSession(...);
Copy to Clipboard Toggle word wrap
上記のコード例により、TransportConfiguration オブジェクトのペアのリストが作成されます。各 TransportConfiguration オブジェクトには、特定のサーバーと接続を確立する方法に関する情報が含まれます。この詳細については、14章トランスポートの設定 を参照してください。
ClientSessionFactoryImpl インスタンスが作成され、コンストラクターでサーバーのリストが渡されます。このファクトリーにより作成されたすべてのセッションは、サーバーのリストに適用されたクライアント接続のロードバランシングポリシーに従ってセッションを作成します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat