- - PR -
複数サーバのセッション情報
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-02-20 09:39
おはようございます。たー坊です。
複数サーバのセッション管理について質問させていただきます。 現在のシステムは、APサーバを2台使用(将来的にはさらに増設) しています。リクエストの切り分けは、ロードバランサで行っており 不可分散をしています。しかしセッション情報をログイン時に作成 する為、セッション情報がないサーバにアクセスされてしまうと エラーになってしまいます。 1.山田さんがログイン。Aサーバにセッション情報格納 2.Aサーバが込み合ってきた 3.山田さんが業務開始。負荷分散によりBサーバリクエスト。 4.Bサーバは山田さんのセッション情報が存在しない為に例外発生。 このようになっています。ロードバランサを使用するシステムで セッション管理を行うときに何か良い方法があるのでしょうか? |
|
投稿日時: 2006-02-20 10:17
通常同じセッションをもつユーザからのアクセスは同じサーバに振り分けるように設定します。
フェールオーバさせるにはセッション情報をレプリケートさせる設定が必要です。 http://www.atmarkit.co.jp/fjava/rensai2/webopt01/webopt01.html |
|
投稿日時: 2006-02-20 10:41
インギ様、ありがとうございます。
ちなみに >通常同じセッションをもつユーザからのアクセスは同じサーバに >振り分けるように設定します。 というのは、ロードバランサの設定ですよね。 |
|
投稿日時: 2006-02-20 12:00
はい。その通りです。
ロードバランサを使っている場合はロードバランサに設定します。 Apache の mod_**** とかで振り分けている場合はそちらの設定になります。 |
|
投稿日時: 2006-02-20 14:00
解答ありがとうございます。
ロードバランサを使用している場合は、ロードバランサで 設定とありますが、ユーザ単位で使用するサーバが決定されて しまいますか? Aサーバにログイン、ログアウト 次にBサーバにログイン このようなことは可能ですか? 少しJavaと話題が離れてきたかもしれませんが、 宜しくお願いします。 |
|
投稿日時: 2006-02-20 14:14
ロードバランサの設定にもよりますね。
多くの場合はクッキーやURLに織り込んであるセッションIDを元に、前回と同じサーバに振り分けて、セッションIDがなければラウンドロビンで振り分ける、といった設定にするかと思います。 なのでセッションIDがなくなれば前回と違うサーバに振り分けることもあるかと。 ただ、後方に設置してあるサーバは IP アドレス以外全く同一の構成をしているはずですのでサーバAにログイン、サーバBにログイン、といったことを意識する必要はないはずです。 意識する必要があるのであればそもそもロードバランサを設置せず、ホスト名を使ってユーザが積極的に選択すれば良いかと思います。 |
|
投稿日時: 2006-02-20 20:47
インギさん、本当にありがとうございました。
大変勉強になりました。 |
1