2013年1月10日木曜日

セッション共有に頭を悩ませる必要がない | Play Framework2.0 ここがいい!

あんまりPlay Frameworkの気になるところばかりを書いていてもあれなので、いいところも書いてみたいと思います。

Play Frameworkはポートを変えて複数起動するのが簡単に行えます。
そのため、フロントエンドをApacheにし、Proxyの設定で複数のPlay Frameworkに振り分けを行う設定ができます。

Play FrameworkもやはりJavaの子、再起動には多少時間がかかります。アプリケーションの規模にも寄ると思いますが1分くらい起動にかかるので、果たしてこれが瞬断といえるか、というとまあ言えないですね。

そんなときにリバースプロキシとしての Apacheを上手く使ってあげて、
1つのアプリを起動している間に、別のポートで立ち上げていたもう1つのアプリ側に振り分ける。
それが終わったら今度は逆に振り分けを行う、といった設定をしてあげます。

詳しくは
http://www.playframework-ja.org/documentation/2.0.4/HTTPServer
に載っています。

ちなみに待機系を指定する status=+H オプションはApacheのバージョンによっては使用できないため注意が必要です。

そこでこのURLに書いてあるとおり、セッション共有に頭を悩ませることはないということだそうです。

ただ実はPlayでSessionと呼んでいるものは実際にはCookieのことなので、サーブレットでいうSessionに近いものはCacheとなり、これは別ポートで立ち上げたアプリごと別になります。
つまり、Cacheにログイン情報とかを入れてると共有できなくなってしまいます。(当然といえば当然ですが・・・)

メンテナンス等を行う場合はApache側でメンテナンス画面を返すようにするとか一瞬のセッショ切れも、ログイン画面へ転送されるものとして割り切るかという判断になるかと思います。

大規模対応のためDBにセッションデータを入れるなんてプラグインすでにあるのだろうか・・・

0 件のコメント:

コメントを投稿