[解決済み】スティッキーセッションとノンスティッキーセッション
質問
粘着式セッションと非粘着式セッションの違いを知りたい。インターネットを読んで理解したこと。
粘着性 : 単一のセッションオブジェクトのみが存在します。
非スティッキーセッション : 各サーバーノードのセッションオブジェクト
解決方法は?
あなたのウェブサイトが1つのウェブサーバーによってのみ提供されている場合、クライアントとサーバーのペアごとに、セッションオブジェクトが作成され、ウェブサーバーのメモリに残ります。クライアントからのすべてのリクエストはこのウェブサーバーに送られ、このセッションオブジェクトを更新します。対話の期間中、何らかのデータをセッションオブジェクトに保存する必要がある場合、そのデータはこのセッションオブジェクトに保存され、セッションが存在する限りそこに留まります。
しかし、あなたのウェブサイトがロードバランサーの背後にある複数のウェブサーバーによって提供されている場合、ロードバランサーは各要求がどの実際の(物理)ウェブサーバーに送られるべきかを決定します。例えば、ロードバランサーの後ろに3つのウェブサーバーA、B、Cがある場合、次のようなことが起こり得ます。 www.mywebsite.com がサーバAから配信されます。 www.mywebsite.com はサーバーBから提供され www.mywebsite.com / はサーバーCから提供されます。
さて、リクエストが(物理的に)3つの異なるサーバから提供されている場合、それぞれのサーバはあなたのためにセッションオブジェクトを作成し、これらのセッションオブジェクトは3つの独立したボックスに置かれているので、一方が他方のセッションオブジェクトにあるものを直接知る方法はないのです。これらのサーバーセッションを同期させるために、セッションデータをDBのような共通のレイヤーに書き込んだり、読み込んだりする必要があります。しかし、このような用途でDBにデータを書き込んだり、DBからデータを読み出したりするのは良い考えではないかもしれません。さて、ここで登場するのが スティッキーセッション .
ロードバランサーがスティッキーセッションを使うように指示されている場合、他のサーバーが存在していても、すべてのインタラクションは同じ物理サーバーで起こります。したがって、あなたのセッションオブジェクトは、このウェブサイトとのやりとりの全体を通して同じものになります。
要約すると、スティッキーセッションの場合、すべてのリクエストは同じ物理ウェブサーバーに向けられ、スティッキーでないロードバランサーの場合は、どのウェブサーバーを選んでリクエストに対応してもよいということです。
例として、AmazonのElastic Load Balancerとスティッキーセッションについては、こちらをご覧ください。 http://aws.typepad.com/aws/2010/04/new-elastic-load-balancing-feature-sticky-sessions.html
関連
-
[解決済み] JSONウェブトークンの無効化
-
[解決済み] セッションとは何ですか?どのように機能するのですか?
-
[解決済み】PHPのセッションが既に開始されているかどうかを確認する
-
[解決済み】認証。JWTの使用とセッションの比較
-
[解決済み】クッキーとセッションの比較
-
[解決済み] これを理解するのを助けてくれる?"よくあるRESTの間違い "です。セッションは無関係"
-
[解決済み] Laravelでは、セッションで異なるタイプのフラッシュメッセージを渡すための最良の方法
-
[解決済み] tmux: 2つのtmuxウィンドウを1つのペインに結合する方法は?
-
[解決済み】セッションは本当にRESTfulnessに違反するのか?
-
[解決済み] PHP のセッションはどのように動作するのでしょうか? (「どのように使われるのですか?」ではありません)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン