クラスタを定義するには、メンバーブローカごとにクラスタ設定プロパティーを指定します。このプロパティーは、クラスタのブローカごとに個別に設定できますが、このプロパティーを中央のクラスタ設定ファイルに集めて、すべてのブローカに参照させる方が一般的に便利です。このようにすると、設定の不一致を防止し、クラスタのすべてのブローカで同一の一貫した設定情報を共有できます。
クラスタ設定プロパティーについては、表 14–9 で詳しく説明します。クラスタ設定プロパティーには次のものが含まれます。
imq.cluster.brokerlist では、クラスタに属しているすべてのブローカのホスト名とポート番号を指定します。
imq.cluster.masterbroker では、どのブローカをマスターブローカにするかを必要に応じて指定します。マスターブローカでは状態変更を追跡します。
imq.cluster.hostname では、cluster 接続サービスのホスト名か IP アドレスを指定します。複数のホストを使用できる場合、この設定は便利です。たとえば、複数のネットワークインタフェースカードが 1 台のコンピュータに含まれる場合に便利です。
imq.cluster.transport では、tcp や ssl など、cluster cluster 接続サービスで使用するトランスポートプロトコルを指定します。
hostname プロパティーと port プロパティーはブローカごとに個別に設定できますが、brokerlist、masterbroker、url、transport は、クラスタのすべてのブローカで同一の値にする必要があります。
次の節では、クラスタのブローカごとに個別に、またはクラスタ設定ファイルを使用して中央で、ブローカのクラスタ設定プロパティーを設定する方法について説明します。
ブローカのクラスタ設定プロパティーは、インスタンス設定ファイルで、またはブローカの起動時にコマンド行で設定できます。たとえば、host1 のポート 9876、host2 のポート 5000、ctrlhost のデフォルトポート 7676 のブローカから構成されるクラスタを作成するには、3 つすべてのブローカのインスタンス設定ファイルに次のプロパティーを含めます。
imq.cluster.brokerlist=host1:9876,host2:5000,ctrlhost
この手法では、クラスタ設定を変更する必要がある場合、クラスタのブローカごとにインスタンス設定ファイルを更新する必要があることに注意してください。
一貫性を保って保守しやすくするため、ブローカごとに共有クラスタ設定プロパティーを設定する代わりに、すべての共有クラスタ設定プロパティーを 1 つのクラスタ設定ファイルに集めることをお勧めします。この手法では、それぞれのブローカのインスタンス設定ファイルで imq.cluster.url プロパティーを設定し、クラスタ設定ファイルの場所を指定する必要があります。たとえば、次のように指定します。
imq.cluster.url=file:/home/cluster.properties
クラスタ設定ファイルでは、接続するブローカのリスト (imq.cluster.brokerlist)、cluster 接続サービスに使用するトランスポートプロトコル (imq.cluster.transport )、任意でマスターブローカのアドレス (imq.cluster.masterbroker) など、クラスタに属しているすべてのブローカの共有設定プロパティーを定義します。次のコードでは、前の例と同じクラスタが定義され、ctrlhost で動作するブローカがマスターブローカになります。
imq.cluster.brokerlist=host1:9876,host2:5000,ctrlhost imq.cluster.masterbroker=ctrlhost