この記事では、主に Linux クラスター/分散環境でのセッション処理の 5 つの戦略をサンプル コードと写真を通じて詳しく紹介します。ぜひ編集者をフォローして一緒に学んでください。
はじめに
一般に、クラスター環境をセットアップした後、考慮しなければならない問題の 1 つは、ユーザーのアクセスによって生成されたセッションをどのように処理するかです。処理が行われない場合、ユーザーは頻繁にログインすることになります。たとえば、クラスター内に 2 つのサーバー A と B があり、ユーザーが初めて Web サイトにアクセスすると、Nginx は負荷分散を通じてユーザーのリクエストをサーバー A に転送します。この時点で、サーバー A はユーザーのセッションを作成します。ユーザーが 2 回目にリクエストを送信すると、Nginx はリクエストをサーバー B にロード バランシングします。この時点では、サーバー B にはセッションがないため、ユーザーはログイン ページに移動します。これはユーザー エクスペリエンスを大幅に低下させ、ユーザーの喪失につながります。このような状況はプロジェクトでは決して発生すべきではありません。
スティッキーセッション、セッションコピー、またはセッション共有を通じてユーザーエクスペリエンスを確保するために、生成されたセッションを処理する必要があります。
以下では、5 つのセッション処理戦略を説明し、その長所と短所を分析します。多くを語る必要はありません。詳細な紹介を見てみましょう。
最初のタイプ: スティッキー セッション
原則: スティッキー セッションとは、ユーザーを特定のサーバーにロックすることを指します。たとえば、上記の例では、ユーザーが最初のリクエストを行うときに、ロード バランサーが使用されます。リクエストはサーバー A に転送されます。ロード バランサーがスティッキー セッションを設定すると、ユーザーからの後続のリクエストはすべてサーバー A に転送されます。これは、ユーザーとサーバー A を結合することと同じです。これがスティッキー セッション メカニズムです。 。
利点: シンプルで、セッションで処理を行う必要はありません。
短所: フォールトトレランスの欠如。現在アクセスしているサーバーに障害が発生し、ユーザーが 2 番目のサーバーに転送された場合、そのセッション情報は無効になります。
該当するシナリオ: 障害が顧客に及ぼす影響はわずかです。サーバー障害は確率が低いイベントです。
実装方法: Nginx を例に挙げると、スティッキーセッションは上流モジュールで ip_hash 属性を設定することで実現できます。
upstream mycluster{ #这里添加的是上面启动好的两台Tomcat服务器 ip_hash;#粘性Session server 192.168.22.229:8080 weight=1; server 192.168.22.230:8080 weight=1; }
2 番目: サーバーセッションのレプリケーション
原則: いずれかのサーバー上のセッションが変更 (追加、削除、変更) されると、ノードはセッションのすべてのコンテンツをシリアル化し、次にブロードキャストします。他のすべてのノードは、他のサーバーがセッションを必要とするかどうかに関係なく、セッションの同期を確保します。
利点: フォールトトレラントで、サーバー間のセッションはリアルタイムで応答できます。
短所: セッション数が多いと、ネットワーク負荷に一定の圧力がかかり、ネットワークの混雑が発生し、サーバーのパフォーマンスが低下する可能性があります。
実装方法:
① Tomcat、server.xmlを設定してTomcatクラスター機能を有効にします

アドレス: ローカルIPを入力し、ポート番号を設定し、ポートの競合を防ぐだけです。
② アプリケーションに情報を追加する: アプリケーションが現在クラスター環境にあり、分散をサポートしていることを通知します。
Web にオプションを追加します。memcached や Redis などのソリューションでは、Memcached または Redis がクラスターである必要があります。 <distributable></distributable>
① スティッキーセッション処理メソッド
原則: 異なる Tomcat は異なるメイン memcached へのアクセスを指定します。複数の Memcached 間の情報が同期され、マスター/スレーブのバックアップと高可用性が可能になります。ユーザーがアクセスすると、まず Tomcat でセッションを作成し、次にそのセッションを対応する memcahed にコピーします。 Memcache はバックアップの役割のみを果たし、読み取りと書き込みはすべて Tomcat 上で行われます。特定の Tomcat がハングアップすると、クラスターはスタンバイ Tomcat へのユーザーのアクセスを特定し、Cookie に保存されている SessionId に基づいてセッションを検索します。セッションが見つからない場合は、対応する memcached にアクセスしてセッションを見つけます。それを見つけたら、スタンバイ Tomcat 上位にコピーします。② 非スティッキーセッション処理方法
原則: memcached はマスターとスレーブのレプリケーションを行い、セッションへの書き込みはスレーブの memcached サービスに書き込まれ、読み取りはすべてマスターの memcached 自体から行われます。セッションを保存しません

利点: フォールトトレラント、セッションはリアルタイムで応答します。
実装方法:
a. 复制相关jar包到tomcat/lib 目录下
JAVA memcached客户端:spymemcached.jarmsm项目相关的jar包:1. 核心包,memcached-session-manager-{version}.jar2. Tomcat版本对应的jar包:memcached-session-manager-tc{tomcat-version}-{version}.jar序列化工具包:可选kryo,javolution,xstream等,不设置时使用jdk默认序列化。
b. 配置Context.xml ,加入处理Session的Manager
粘性模式配置:

非粘性配置:
第四种:session持久化到数据库
原理:就不用多说了吧,拿出一个数据库,专门用来存储session信息。保证session的持久化。
优点:服务器出现问题,session不会丢失
缺点:如果网站的访问量很大,把session存储到数据库中,会对数据库造成很大压力,还需要增加额外的开销维护数据库。
第五种terracotta实现session复制
原理:Terracotta的基本原理是对于集群间共享的数据,当在一个节点发生变化的时候,Terracotta只把变化的部分发送给Terracotta服务器,然后由服务器把它转发给真正需要这个数据的节点。可以看成是对第二种方案的优化。

优点:这样对网络的压力就非常小,各个节点也不必浪费CPU时间和内存进行大量的序列化操作。把这种集群间数据共享的机制应用在session同步上,既避免了对数据库的依赖,又能达到负载均衡和灾难恢复的效果。
实现方式:篇幅原因,下篇再论。
小结
以上讲述的就是集群或分布式环境下,session的5种处理策略。其中就应用广泛性而言,第三种方式,也就是基于第三方缓存框架共享session,应用的最为广泛,无论是效率还是扩展性都很好。而Terracotta作为一个JVM级的开源群集框架,不仅提供HTTP Session复制,它还能做分布式缓存,POJO群集,跨越群集的JVM来实现分布式应用程序协调等,也值得学习一下。
以上がLinuxクラスタ/分散環境におけるセッション処理方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Linuxメンテナンスモードを使用するタイミングと理由:1)システムが起動するとき、2)主要なシステムの更新またはアップグレードを実行するとき、3)ファイルシステムメンテナンスを実行するとき。メンテナンスモードは、安全で制御された環境を提供し、運用上の安全性と効率を確保し、ユーザーへの影響を減らし、システムセキュリティを強化します。

Linuxの不可欠なコマンドは次のとおりです。1.LS:リストディレクトリの内容; 2.CD:作業ディレクトリを変更します。 3.mkdir:新しいディレクトリを作成します。 4.RM:ファイルまたはディレクトリを削除します。 5.CP:ファイルまたはディレクトリをコピーします。 6.MV:ファイルまたはディレクトリの移動または名前を変更します。これらのコマンドは、カーネルと対話することにより、ユーザーがファイルとシステムを効率的に管理するのに役立ちます。

Linuxでは、ファイルおよびディレクトリ管理ではLS、CD、MKDIR、RM、CP、MVコマンドを使用し、許可管理はCHMOD、CHOWN、およびCHGRPコマンドを使用します。 1。LS-Lなどのファイルおよびディレクトリ管理コマンドは、詳細情報、MKDIR-Pを再帰的に作成するディレクトリを再帰的に作成します。 2。CHMOD755FILEセットファイル許可、CHOWNUSERFILEファイル所有者、CHGRPGROUPFILEの変更ファイルグループなどの許可管理コマンド。これらのコマンドは、ファイルシステム構造とユーザーおよびグループシステムに基づいており、システムコールとメタデータを介して動作および制御します。

メンテナンスメモデンリンリンアスピアルブーテンビロンメント、criticalsystemmaincencetasks.itallowsadministratorstopertopertopertopersetstingtingpasswords、Repainingfilesystems、およびRecoveringfrombootfailurureSinaMinimalenvironment.

Linuxのコアコンポーネントには、カーネル、ファイルシステム、シェル、ユーザー、カーネルスペース、デバイスドライバー、パフォーマンスの最適化とベストプラクティスが含まれます。 1)カーネルは、ハードウェア、メモリ、プロセスを管理するシステムのコアです。 2)ファイルシステムはデータを整理し、Ext4、BTRFS、XFSなどの複数のタイプをサポートします。 3)シェルは、ユーザーがシステムと対話するためのコマンドセンターであり、スクリプトをサポートします。 4)システムの安定性を確保するために、ユーザースペースをカーネルスペースから分離します。 5)デバイスドライバーは、ハードウェアをオペレーティングシステムに接続します。 6)パフォーマンスの最適化には、システム構成とベストプラクティスのチューニングが含まれます。

Linuxシステムの5つの基本コンポーネントは次のとおりです。1。Kernel、2。Systemライブラリ、3。Systemユーティリティ、4。グラフィカルユーザーインターフェイス、5。アプリケーション。カーネルはハードウェアリソースを管理し、システムライブラリは事前コンパイルされた機能を提供し、システムユーティリティはシステム管理に使用され、GUIは視覚的な相互作用を提供し、アプリケーションはこれらのコンポーネントを使用して機能を実装します。

Linuxメンテナンスモードは、Grubメニューから入力できます。特定の手順は次のとおりです。1)GRUBメニューのカーネルを選択し、「E」を押して編集し、2)「Linux」行の最後に「シングル」または「1」を追加し、3)Ctrl Xを押して開始します。メンテナンスモードは、システム修理、パスワードリセット、システムのアップグレードなどのタスクに安全な環境を提供します。

Linux Recoveryモードを入力する手順は次のとおりです。1。システムを再起動し、特定のキーを押してGrubメニューを入力します。 2。[RecoveryMode)でオプションを選択します。 3. FSCKやrootなどの回復モードメニューで操作を選択します。リカバリモードを使用すると、シングルユーザーモードでシステムを開始し、ファイルシステムのチェックと修理を実行し、構成ファイルを編集し、システムの問題を解決するのに役立ちます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ホットトピック









