27.6. その他設定の問題

27.6.1. JGroups チャネルの特定インターフェースへのバインド

上記の「トランスポートプロトコル」セクションでは、 JGroups がソケットをバインドするインターフェースを設定する方法について簡単に説明しました。 ここではこのトピックについて詳しく説明します。
最初に、システムプロパティjgroups.bind_addr (または廃止された初期の名前である bind.address) が設定されている場合に XML 設定ファイルの bind_addr 要素に設定された値が JGroups によって無視されることを理解することが重要です。このシステムプロパティは XML プロパティよりも優先されます。 JBoss Application Server が -b (または --host スイッチを使用して起動されるとアプリケーションサーバーは jgroups.bind_addr を指定された値に設定します。 -b が指定されないとアプリケーションサーバーはデフォルトでほとんどのサービスを localhost にバインドします。
JGroups がインターフェースにバインドする方法を管理するベストプラクティスは何ですか?
  • JGroups を他のサービスとして同じインターフェースにバインドします。 単純に -b を使用します。
    ./run.sh -b 192.168.1.100 -c production
  • サービス (JBoss Web など) を 1 つのインターフェースにバインドしますが、 JGroups には異なるインターフェースを使用します。
    ./run.sh -b 10.0.0.100 -Djgroups.bind_addr=192.168.1.100 -c production
    特別に設定されたシステムプロパティは -b 値よりも優先されます。 これは一般的な使用パターンであり、 一方のネットワークにクライアントトラフィックを割り当て、もう一方のネットワークにクラスター間トラフィックを割り当てます。
  • サービス (JBoss Web など) をすべてのインターフェースにバインドします。これは以下のように実行することができます。
    ./run.sh -b 0.0.0.0 -c production
    しかし、これを実行すると JGroups がすべてのインターフェースにバインドしなくなります。代わりに JGroups はマシンのデフォルトのインターフェースにバインドします。JGroups がすべてのインターフェースで送受信するよう指示する方法については、「トランスポートプロトコル」の章を参照してください。
  • サービス (JBoss Web など) をすべてのインターフェースにバインドしますが、 JGroups インターフェースは指定します。
    ./run.sh -b 0.0.0.0 -Djgroups.bind_addr=192.168.1.100 -c production
    ここでも、 特別に設定したシステムプロパティは -b 値よりも優先されます。
  • 異なるチャネルに異なるインターフェースを使用します。
    ./run.sh -b 10.0.0.100 -Djgroups.ignore.bind_addr=true -c production
この設定では、JGroups が jgroups.bind_addr システムプロパティを無視し、代わりに XML で指定された値を使用します。 bind_addr 属性を希望のインターフェースに設定するにはさまざまな XML 設定ファイルを編集する必要があります。