スティッキーセッションと非スティッキーセッション 質問する

スティッキーセッションと非スティッキーセッション 質問する

スティッキーセッションと非スティッキーセッションの違いを知りたいです。インターネットで読んで理解したことは次のとおりです。

スティッキー: 単一のセッション オブジェクトのみ存在します。

非スティッキーセッション: 各サーバーノードのセッションオブジェクト

ベストアンサー1

ウェブサイトが 1 つのウェブ サーバーのみによって提供される場合、クライアントとサーバーのペアごとにセッション オブジェクトが作成され、ウェブ サーバーのメモリ内に残ります。クライアントからのすべての要求はこのウェブ サーバーに送信され、このセッション オブジェクトを更新します。対話期間中にセッション オブジェクトに保存する必要があるデータがある場合、そのデータはこのセッション オブジェクトに保存され、セッションが存在する限りそこに残ります。

ただし、ウェブサイトがロードバランサーの背後にある複数のウェブサーバーによって提供されている場合、ロードバランサーは各リクエストをどの実際の(物理的な)ウェブサーバーに送信するかを決定します。たとえば、ロードバランサーの背後に3つのウェブサーバーA、B、Cがある場合、当サイトについてサーバーAから提供される当サイトについてサーバーBから提供され、当サイトについて/ はサーバー C から提供されます。

ここで、リクエストが (物理的に) 3 つの異なるサーバーから処理されている場合、各サーバーはセッション オブジェクトを作成します。これらのセッション オブジェクトは 3 つの独立したボックスにあるため、一方のサーバーがもう一方のサーバーのセッション オブジェクトの内容を直接知る方法はありません。これらのサーバー セッション間で同期するには、DB など、すべてに共通するレイヤーにセッション データを書き込んだり読み込んだりする必要がある場合があります。このユース ケースでは、DB へのデータの書き込みや DB からのデータの読み取りはお勧めできません。ここで、sticky-sessionが役立ちます。

ロード バランサーがスティッキー セッションを使用するように指示されている場合、他のサーバーが存在する場合でも、すべてのやり取りは同じ物理サーバーで行われます。したがって、この Web サイトとのやり取り全体を通じて、セッション オブジェクトは同じになります。

要約すると、スティッキー セッションの場合、すべてのリクエストは同じ物理 Web サーバーに送信されますが、非スティッキー ロード バランサーの場合は、リクエストを処理するために任意の Web サーバーを選択できます。

例として、Amazon の Elastic Load Balancer とスティッキーセッションについては、こちらを参照してください。http://aws.typepad.com/aws/2010/04/new-elastic-load-balancing-feature-sticky-sessions.html

おすすめ記事