コネクタベースのクラスタリング

JRun では、Web サーバコネクタの後方で JRun サーバをクラスタすることができます。次の図に示すように、Web サーバコネクタは、クラスタ内の JRun サーバ間でロードバランスを実行し、フェイルオーバーを管理します。

コネクタベースのクラスタリング

JRun の Web サーバコネクタは、クラスタ内のJRunサーバに対してロードバランスとフェイルオーバー機能を提供します。

Web サーバの設定ファイル (たとえば、Apache では httpd.conf、IIS では jrun.ini) には、serverstore という名前のエントリがあります。このエントリは、jrunserver.store という名前のファイルを指しています。jrunserver.store ファイルには、JRun サーバクラスタ内にあるサーバに関する情報が含まれています。

Web サーバ設定ツールを実行すると、JRun クラスタが自動的に検出され表示されます。クラスタを選択すると、Web サーバ設定ツールはクラスタメンバーの 1 つをブートストラップサーバとして選択し、そのサーバの IP アドレスと Web サーバコネクタのポート (JCP ポートとも呼ばれます) を、設定ファイルの bootstrap プロパティに保存します。また、Web サーバ設定ツールはクラスタ内のすべての JRun サーバについて、jrun.xml 内 ProxyService の deactivated 属性を false に設定します。

メモ:  Web サーバ設定ツールを実行するには、クラスタ内のすべての JRun サーバが実行中であることが必要です。実行されていないサーバがあると、Web サーバ設定ツールは deactivated 属性を変更できません。

Web サーバコネクタを初めて開始するとき、bootstrap プロパティを使用して、JRun サーバがクラスタ内に存在するかどうかを検証し、クラスタ内の各 JRun サーバの IP アドレスと JCP ポートを <IP アドレス>:<JCP ポート> の形式で保存します。たとえば、bootstrap プロパティが 1.64.22.137:51000 を指していて、JRun サーバがクラスタ内に存在する場合、コネクタは次のような <IP アドレス>:<JCP ポート設定> を含む proxyservers プロパティを持つ jrunserver.store ファイルを作成します。

proxyservers=1.64.22.137:51000;1.64.22.143:51000;1.64.22.126:51000;
1.64.22.140:51000

この例では、すべての JRun サーバがデフォルトの JCP ポートを使用していることを前提にしています。

jrun.xml の変更

Web サーバ設定ツールを実行する他に、クラスタされた各 JRun サーバの jrun.xml ファイルの ProxyService に、次の変更を加える必要があります。

次の例は、デフォルトのロードバランスアルゴリズムと、StickySessions を使用した jrun.xml スニペットです。

<service class="jrun.servlet.jrpp.JRunProxyService" name="ProxyService">
  <attribute name="bindToJNDI">true</attribute>
  <attribute name="port">51010</attribute>
  <attribute name="deactivated">false</attribute>
  <attribute name="StickySessions">true</attribute>
</service>

次の例は、加重ラウンドロビンによるロードバランスアルゴリズムと、StickySessions を使用した jrun.xml スニペットです。

<service class="jrun.servlet.jrpp.JRunProxyService" name="ProxyService">
  <attribute name="bindToJNDI">true</attribute>
  <attribute name="port">51010</attribute>
  <attribute name="deactivated">false</attribute>
  <attribute name="LoadBalancingAlgorithm">ROUNDROBIN_WEIGHTED</attribute>
  <attribute name="ServerWeight">3</attribute>
  <attribute name="StickySessions">true</attribute>
</service>