Linux冗長構成にした際のセッション共有設定(クラスタリング)がややこしいことで定評のあるTomcat。レシーバのポート周りの設定がちょっと怪しかったので、調べなおした結果をここにメモ。詳しい話は、Doc置き場に書きました(ApacheとTomcatでクラスタリング)。7.0.39概要Linuxでの設定は、server.xmlに対して以下3つのポイントをおさえておけば良い。クラスタごとに、マルチキャストアドレスとポート番号を決める(デフォルト値は使わない)マルチキャスト通信をどのNICから投げるか、ルーティング設定をおこなうレシーバに用いるNICのIPアドレスを、"auto"にせずに直接記述するマルチキャストアドレスTomcatのクラスタリングの仕組みは、マルチキャストを利用して実現されている。クラスタに参加する全サーバが同じマルチキャストアドレスを設定することで、各サーバは自分がどこにメンバ参加すればいいかが判断できるわけだ(もう少し正確に言うと、Tomcatでは、「マルチキャストアドレスとポート番号」のセットでグループ分けされる。そのためアドレスだけカブっても動くはず)。port="45564"になっているけど、当然のことながらデフォルト設定では近隣でTomcatを使っている人と干渉するかもしれない。このIPアドレスとポート番号は変更しよう。port="50001"」とか少しずらしてみた。マルチキャスト通信のルーティング設定NICを複数持っているサーバなどでは、どのNICからマルチキャストを投げるかを設定してやらないといけない。マルチキャストをeth0から投げるならば、以下のようになる。eth0レシーバのIPアドレスマルチキャストでメンバ参加したクラスタ間で、実際にセッション共有をおこなうのが<Receiver>である。レシーバの設定で、アドレスを書くところがデフォルトではaddress="auto"になっているのだが、ここをautoのままにしていると"localhost"で名前解決できねぇとか、複数NIC持つ場合どのNIC使うねん、などで地雷になりやすい。そのため、ここには使うNICのIPアドレスを直接記載するのが良い。レシーバのポートは4000/tcpが初期値になっているが、bindできない場合はautoBind機能により1ずつ増やしていって4099/tcpまで自動で試してくれるため、このポート番号は初期値のまま放っておいても問題になることはまずない。公式ドキュメントをよく読もう。関する罪」の情報公開請求をしました月別アーカイブはてなブログをはじめよう!ozumaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。