この節では、ブローカのセットを接続してクラスタを形成する方法、既存クラスタに新しいブローカを追加する方法、クラスタからブローカを削除する方法について説明します。
一般的にブローカを接続してクラスタを形成する方法は、2 つあります。コマンド行から行う方法 (-cluster オプションを使用) と、クラスタ設定ファイルで imq.cluster.brokerlist プロパティーを設定する方法です。どちらの方法を使用しても、起動するそれぞれのブローカは、5 秒ごとにその他のブローカとの接続を試み、設定されている場合はマスターブローカが起動すると接続されます。マスターブローカの前にクラスタのブローカを起動すると、マスターブローカが起動するまで、そのブローカは保留状態になり、クライアント接続を拒否します。マスターブローカが起動すると、保留状態のブローカは自動的に完全に機能するようになります。
ブローカクラスタをコマンド行から設定するには、それぞれのブローカの起動時に、imqbrokerd コマンドの -cluster オプションを使用して、クラスタのブローカの完全なリストを指定します。たとえば次のコマンドでは、新しいブローカが起動し、host1 のデフォルトポート 7676、host2 のポート 5000、デフォルトホスト localhost のポート 9876 で動作しているブローカに接続されます。
imqbrokerd -cluster host1,host2:5000,:9876
本稼動システムに適した別の方法として、クラスタ設定ファイルを作成し、imq.cluster.brokerlist プロパティーを使用して、接続するブローカのリストを指定する方法があります。クラスタのそれぞれのブローカでは、独自の imq.cluster.url プロパティーを設定し、このクラスタ設定ファイルの場所を指定する必要があります。
いずれの方法であれ、クラスタ内のブローカで、ネットワーク ループバック IP アドレス (127.0.0.1) に解決するアドレスが指定されていないことを確認する必要があります。このアドレスで設定されたブローカは、クラスタ内のほかのブローカに接続できなくなります。
一部の Linux インストーラでは、localhost エントリが、ネットワークループバックアドレスに自動的に設定されます。このようなシステムでは、クラスタのすべてのブローカでアドレスを適切にするように、システムの IP アドレスを変更する必要があります。
クラスタに加わるすべての Linux システムでは、クラスタ設定の一環として /etc/hosts ファイルをチェックしてください。システムで固定 IP アドレスを使用している場合は、/etc/hosts ファイルを編集し、localhost の正しいアドレスを指定します。アドレスがドメインネームサービス (DNS) に登録されている場合は、/etc/nsswitch.conf ファイルを編集してエントリの順序を変更し、システムが DNS 検索を実行してから、ローカルの hosts ファイルを参照するように設定します。/etc/nsswitch.conf ファイルの行は次のようになります。
hosts:dns files
安全で暗号化されたメッセージ配信がクラスタのブローカ間で必要である場合は、SSL ベースのトランスポートプロトコルを使用するように cluster 接続サービスを設定します。「メッセージの暗号化」で説明するように、クラスタのブローカごとに、SSL ベースの接続サービスを設定します。次にそれぞれのブローカの imq.cluster.transport プロパティーを、クラスタ設定ファイルでまとめて、またはブローカごとに個別に、ssl に設定します。
新しいブローカをクラスタに追加する手順は、クラスタでクラスタ設定ファイルを使用しているかどうかによって決まります。
クラスタ内の任意のブローカに次のコマンドを実行します。
imqcmd reload cls |
それぞれのブローカでクラスタ設定が再読み込みされ、クラスタに属しているブローカのすべての一貫した情報が最新になります。このコマンドをクラスタ内の各ブローカに対して実行する必要はありません。いずれかのブローカに対して実行すれば、すべてのブローカでクラスタ設定が再ロードされます。
(任意指定) ブローカの config.properties ファイルで imq.cluster.url プロパティーの値をクラスタ設定ファイルの場所に設定します。
新しいブローカを起動します。
「クラスタへのブローカの追加」を実行しなかった場合は、imqbrokerd コマンド行で -D オプションを使用し、imq.cluster.url の値を設定します。
config.properties ファイルを編集するか、imqbrokerd コマンド行で -D オプションを使用し、次のプロパティー値を設定します。
クラスタからブローカを削除する方法は、最初にコマンド行でクラスタを作成したか、中央のクラスタ設定ファイルによって作成したかによって決まります。
コマンド行から imqbrokerd コマンドを使用してブローカをクラスタに接続した場合は、それぞれのブローカを停止してから、コマンド行に新しいクラスタメンバーセットを指定してブローカを再起動する必要があります。その手順は次のとおりです。
imqcmd コマンドを使用し、クラスタのそれぞれのブローカを停止します。
imqbrokerd コマンドの -cluster オプションを使用し、クラスタに残すブローカのみを指定してそれらのブローカを再起動します。
たとえば、次のコマンドを使用して、A、B、 C というそれぞれのブローカを起動し、その 3 つのブローカから構成されるクラスタを最初に作成したとします。
imqbrokerd -cluster A,B, C |
ブローカ A をクラスタから削除するには、次のコマンドを使用してブローカ B と C を再起動します。
imqbrokerd -cluster B,C |
中央のクラスタ設定ファイルの imq.cluster.brokerlist プロパティーでメンバーブローカを指定してクラスタを最初に作成した場合、ブローカを停止してメンバーのうち 1 つのブローカを削除する必要はありません。単純に設定ファイルを編集して削除したいブローカを除外し、残りのクラスタメンバーにクラスタ設定を再読み込みさせます。除外するブローカは、同じクラスタ設定ファイルの場所を指定しないように再設定します。手順は次のとおりです。