序文 Java を使用して Web アプリケーションを開発している場合は、HttpSession に非常に精通しているはずですが、HpptSession はデフォルトでメモリを使用してセッションを管理することが知られています。アプリケーションがスケールアウトされると、セッション共有の問題が発生してしまいます。 Spring Session は、セッション共有の問題を解決するために、Servlet HttpSession を作成および管理するためのソリューションを提供します。さらに重要なのは、Spring Boot で使用するのが非常に簡単だということです。 セッション共有の問題 HttpSession は、メモリに保存される Tomcat/Jetty などのサーブレット コンテナーによって作成および管理されます。 Web アプリケーションを分散クラスターにスケールアウトし、負荷分散に LVS または Nginx を使用すると、同じユーザーからの HTTP 要求が 2 つの異なるインスタンスに分散される可能性があります。異なるインスタンス間でセッション共有を確実に行う方法が、解決しなければならない問題になります。 最も簡単な解決策は、セッション データを Memcached/Redis などのメモリ外の統一された場所に保存することです。すると、HttpSession の作成と管理の Servlet コンテナの実装をどのように置き換えるかという疑問が再び生じます。
2. Nginx の負荷分散アルゴリズムを ip_hash に設定し、各リクエストがアクセス IP のハッシュ結果に従って割り当てられるようにします。この方法では、同じ IP アドレスからの訪問者は固定のバックエンド サーバーにアクセスするため、動的 Web ページのセッション共有の問題が効果的に解決されます。 3. Shiro を使用してセッションを管理する場合は、Redis を使用して Shiro の SessionDao インターフェースを実装し、セッションが Redis によって管理されるようにすることができます。 4. フィルターを設計し、HttpServletRequestWrapper を使用し、独自の getSession() メソッドを実装して、セッション データの作成と管理の作業を引き継ぎます。 Spring-Session はこのアイデアに基づいて実装されます。 Spring Boot に Spring Session を統合する Spring Session は、セッションを保存するために Redis、Mongo、JDBC、Hazelcast の使用をサポートしています。ここでは、Redis を例として使用します。 1. Maven 依存関係を導入します (この例では dependencyManagement を使用していますが、使用しない場合は <version> タグを追加してください)
2. Spring アプリケーションを構成し、application.properties に次の構成を追加します。
これら 2 つの手順だけで統合が完了し、プロセス全体が完全にスムーズかつシームレスになります。 注: Redis サーバーがローカルのデフォルト設定 (localhost:6379) を使用していない場合は、Redis を設定する必要があります。どのように設定するのですか?ここを見て下さい。 検証してみましょう〜 確かに、Http Session は Spring Session によってパッケージ化されており、プログラミングには引き続き Http Session API を使用できます。 クッキーも通常通り作成され、キーは SESSION です。
redis-cli を使用して、関連データも Redis に保存されていることを確認します。 |
<<: 医療機関は、データセキュリティとコンプライアンスをハイブリッドクラウド導入の主要要因として挙げている。
>>: Mafengwo ビッグデータ プラットフォームにおける Kafka クラスターの最適化とアプリケーション拡張
【51CTO.comオリジナル記事】2021年ハノーバー産業見本市が4月12日から16日までオンライ...
404 ページについては誰もが知っておく必要があります。検索エンジンに適した 404 ページは、Ba...
ウェブサイトの最適化のタイムウィンドウが2013年に入ると、従来の最適化方法、特に外部リンクの最適化...
クラウド コンピューティングの料金は前例のない高さに達しています。データセンターがエネルギーコスト、...
月収10万元の起業の夢を実現するミニプログラム起業支援プランミニプログラムは、現在、WeChat エ...
オンラインマーケティングでは、何をするにも方向性が必要です。そうでないと、進むべき道が非常に曖昧にな...
1. はじめにKafka は世界中でよく知られており、ほとんどのインターネット企業で使用されています...
Coffee Host が毎年恒例の Double Eleven プロモーションを開始しました!今か...
情報フローの最適化担当者にとって、この世で最も難しくて選択しにくいものが 2 つあります。 1. 彼...
簡単な説明: 中国のすべてのローカルポータルの収益分析によると、収益の約 60% ~ 80% はロー...
Baidu の自然なランキングを使用して Web サイトを分析すると、お互いの長所を学び、弱点を克服...
[51CTO.comより引用] 近年、カジュアルゲームのユーザー規模は着実に成長を続けています。特に...
Bandwagonhost は本日、米国 DC 9 データセンターにある限定版 VPS を開始しまし...
[コアヒント] 2006 年の立ち上げから Sogou との合併まで、Tencent SOSO は ...
ほぼすべての伝統的な企業が「オンライン化」を開始しており、これは長い間の傾向です。その理由は単純です...