TOP比較データ> Tomcatのセッションレプリケーション
Javaアプリケーションサーバのクラスタリング機能比較
Javaアプリケーションサーバのクラスタリング機能比較

第2回:Tomcatのクラスタ設定
著者:サンモアテック  津田 新吾   2005/10/31
1   2  3  4  次のページ
Tomcatのセッションレプリケーション

   現在(2005年10月)のバージョンのTomcatで使用されている"all-to-all"のセッションレプリケーションでは、クラスタグループ内にあるすべてのTomcatが同じセッション情報を共有します。"all-to-all"のセッションレプリケーションの方式はわかりやすい形ではありますが、クラスタグループ内のサーバの台数が多いとセッション間で情報のやり取りが多くなるため、ネットワークのトラフィックが増大してしまいます。

all-to-all
図1:all-to-all

   そのため、少ない台数のTomcatで同じセッション情報を共有する"primary-secondary"のセッションレプリケーションが望まれています。"primary-secondary"であれば、セッションレプリケーションされる情報は「プライマリサーバ」と「セカンダリサーバ」の2台の間でのみやり取りされるため、ネットワークにかかる負荷はそれほど大きくなりません(図2)。

   また"primary-secondary"ではセッションを保持している1台がダウンした場合、ほかの1台を「プライマリサーバ」または「セカンダリサーバ」に変化させ、セッションレプリケーションが引き継がれます。

primary-secondary
図2:primary-secondary


mod_jkの"Domain Clustering"

   少し前までApacheとTomcatの間で使われることの多かった通信モジュールはmod_jk2でしたが、結局mod_jkに統合される形で2004年11月に開発が終了しました。

   mod_jkはJK Version 1.2.8より「domain」というプロパティが追加され、"Domain Clustering"が利用可能になりました。この"Domain Clustering"はドメインというくくりでいくつかのTomcatをひとまとめにしたグループを作り、セッションレプリケーションはそのドメイン内のみで行い、ネットワークにかかる負荷を軽減することができます。

   ただし、ドメインを超えてセッション情報が共有されていくわけではないので、ドメイン内のすべてのTomcatがダウンしてしまい、ほかのドメインに処理が移った場合には、セッション情報はクリアされてしまいます。

   mod_jk2の場合は「group」という単位でクラスタグループを分けることはできたものの、同じアプリケーション(URL)に対してグループをまたがった形ではセッションレプリケーションができなかったことを考えると大きな進歩であるといえます。

"domain clustering"と"group clustering"
図3:"domain clustering"と"group clustering"
(画像をクリックすると別ウィンドウに拡大図を表示します)


1   2  3  4  次のページ


株式会社サンモアテック 津田 新吾
著者プロフィール
株式会社サンモアテック  津田 新吾
技術開発事業部。
某電線メーカーでカーナビの経路案内・経路計算などの組込みソフトウェア開発を10年近く経験。その後現在の(株)サンモアテックに入社。以来、携帯Javaでの業務支援システムやオープンソースのエンタープライズ適用、Webサービスなど主にサントリーグループ向けの新技術開発に従事している。


INDEX
第2回:Tomcatのクラスタ設定
Tomcatのセッションレプリケーション
  クラスタ動作シーケンス
  クラスタリングの設定方法
  クラスタリング基本動作の確認