2016-12-09 6 views
4

ロードバランシング用に2つのサーバーがあります。セッションタイムアウトが30分に設定されていても、アプリケーションに正常にログインした後に無効なセッションが取得され、ユーザーセッションが期限切れになることがあります。いずれかのサーバーで認証が行われているかどうかはわかりませんが、後続の要求は別のサーバーに送られます。これはランダムであるように見え、すべてのユーザーに起こるわけではありません。ロードバランサのHTTPセッション

無効なセッションは、選択したネットワークでのみ発生しています。当社のアプリケーションは、インド全土の21の異なる店舗で利用されています。このうち7店舗にこの問題があり、Airtelネットワークを使用しているすべての店舗であってもそうです。私のアプリケーションは、私のオフィスネットワークとエアテルデータカードでうまく動作します。しかし、私のラップトップでJioネットワークを使って接続すると奇妙な問題に直面します。 Jioネットワークだけでどうやって起こっていますか?

Language: Java 

Framework: Spring

Server: Jboss 7.1.1 

答えて

6

あなたはセッションが1台のサーバー上に作成されるため、問題が最も可能性が高いですが、後続の要求の一部が正しくありません別のサーバーに行っている、言ったようにセッションの属性であるため、ユーザーがサインインしていないと考えられます。

ロードバランサでスティッキセッションを構成する必要があるため、特定のセッションのすべての要求が、セッションのある2つのサーバー存在する(それに固執する)。言い換えれば、userAのセッションがserverAで作成されると、後続のすべての要求がそのセッションでそれに固執します。同様に、user2のセッションは、同じサーバーまたはserverBで終了する場合もあれば、終了しない場合もあります。スティッキセッション(またはセッションアフィニティ)は、コードを変更することなく構成のみで達成できます。

また、セッションを外部データソースに保存し、スティッキセッションを必要とせずに2つのサーバー間でセッションを共有することもできます。 Spring Sessionフレームワークは、多くの外部データソースを使用してセッションを永続化する非常に便利な方法を提供します。 Session persistentは、コード(まあ、Spring config)の変更を必要とするので、スティッキーセッションを使用するよりもやや侵害的ですが、ロードバランシング、スケーラビリティ、サービスの可用性の点で優れています。無効なセッションが選択されたネットワーク内でのみ起こって気づい

http://blog.haproxy.com/2012/03/29/load-balancing-affinity-persistence-sticky-sessions-what-you-need-to-know/

https://touk.pl/blog/2016/03/22/haproxy-sticky-sessions-for-soap-payloads/

http://docs.spring.io/spring-session/docs/current/reference/html5/

+0

:ここ

はあなたが決めるか、少なくともそれ以上を学ぶのを助ける必要があるいくつかの参照です。当社のアプリケーションは、インド全土の21の異なる店舗で利用されています。このうち7店舗にこの問題があり、Airtelネットワークを使用しているすべての店舗であってもそうです。私のアプリケーションは、私のオフィスネットワークとエアテルのデータカードでうまく動作します。しかし、私のラップトップでJioネットワークを使って接続すると奇妙な問題に直面する –

+0

どのロードバランサを使用していますか?ロードバランサ(NGINXなど)の中には、クライアントのIPアドレスによるセッションアフィニティをサポートする(デフォルトとして設定する)ものがあります。その場合、ほとんどのオフィスネットワークがアウトバウンドトラフィック用にプロキシを使用するため、オフィスネットワークから接続するときに、サーバーが読み取るクライアントIPは同じワークステーションに関係なく同じになる可能性があります。従って、サーバはプロキシのIPをクライアントIPとしてしか見ることができない。これは、別のプロバイダを使用するとすぐに変更されます。しかし、私たちは、携帯電話のデータとオフィスのLAN/WANを接続するときに同様の問題に直面しました。 – Bloodysock

+0

"F5"ロードバランサを使用します。Jioネットワークの認証後にセッションが無効になることがありますが、Airtelネットワークで問題なく動作することはありますか?この問題を解決するにはどうすればよいですか。 –

関連する問題