【Tomcat】Tomcatのセッション永続化 ~ セッション レプリケーション / 知識編 ~

Tomcat におけるセッション永続化方法

https://thinkit.co.jp/cert/compare/14/1/3.htm
1) PersistenceManager を使用
 => 複数のサーバでファイルシステムを共有し、セッション永続先として用いる
2) JDBCManager を使用
 => 複数のサーバでDataBaseを共有し、セッション永続先として用いる
 => 具体的な構築手順は、以下の関連記事を参照のこと。
http://blogs.yahoo.co.jp/dk521123/36698011.html
3) catalina-cluster.jar を使用
 => TCPソケットを使用したインメモリセッションレプリケーション

使用上の注意

 * セッションの書き込み間隔は、即時ではなく、最低でも設定上では1秒以上後にDBに書き込まれる
  => スティッキーセッション(Sticky Session)が必要になる

【書き込み間隔】
 * 以下の計算式で、セッションの書き込み間隔が決まる

maxIdleBackup(=0) + processExpiresFrequency(=1) * engine.backgroundProcessorDelay(=1) = 1[秒]

`設定値`意味`デフォルト値`最小値
maxIdleBackupセッションが最後に使われてからバックアップされるまでの時間 [秒]-1(非活性)0
processExpiresFrequencyセッション切れ頻度61
backgroundProcessorDelaytomcat停止時にセッションを保存するか101

用語整理

セッション永続化(Session Persistence)

 * サーバ停止しても、再度起動時にそのセッション状態を継続して使用できるようにする

スティッキーセッション(Sticky Session)/セッション・アフィニティ(Session affinity)

sticky : くっついて離れない / affinity : 密接な関係
 * ロードバランサなどでサーバが複数台ある場合、
   特定ユーザからのアクセスは特定のサーバのみに接続するように調整する
  => セッションが切れる事がない

ラウンドロビン(round robin)

 * 分散対象サーバに均等にリクエストを振り分ける方式
 * 各サーバで処理するリクエストの数が均等になるため、平均的にはサーバの負荷も均等になる

フェイルオーバー(failover)

 * システム障害が発生した際、代替システムがその機能を引き継ぎ、処理を続行する仕組み


関連記事

Tomcatのセッション永続化 ~ セッション レプリケーション / 知識編 ~

http://blogs.yahoo.co.jp/dk521123/33726907.html

Tomcatのセッション永続化 ~ セッション レプリケーション / JDBCManager・MySQL編 ~

http://blogs.yahoo.co.jp/dk521123/36698011.html

Apache】【TomcatApache - Tomcat で、ロードバランシング

http://blogs.yahoo.co.jp/dk521123/36708242.html

単一Tomcat で複数のインスタンスを動かす

http://blogs.yahoo.co.jp/dk521123/33610584.html

【Web開発】クッキー(Cookie

http://blogs.yahoo.co.jp/dk521123/28437833.html

高可用性システム構築について

http://blogs.yahoo.co.jp/dk521123/34672360.html