分散システムにおけるセッション共有の 5 つの方法

分散システムにおけるセッション共有の 5 つの方法

[[272319]]

1. NFSベースのセッション共有

NFS は Net File System の略称で、Unix ネットワーク ホスト間のディレクトリ共有の問題を解決するために Sun によって最初に開発されました。

このソリューションは実装が最も簡単で、二次的な開発をあまり必要としません。共有ディレクトリ サーバーを各チャネル サーバーのローカル セッション ディレクトリにマウントするだけで済みます。欠点は、NFS が複雑なセキュリティ メカニズムとファイル システムに依存しているため、特にセッションなどの同時読み取りと書き込みが多い小さなファイルの場合、同時実行効率が高くないことです。共有ディレクトリ サーバーの io-wait が高すぎるため、最終的にはフロントエンド WEB アプリケーションの実行効率が低下します。

2. データベースに基づくセッション共有

最初の選択肢はもちろん有名な MySQL データベースであり、セッション操作の読み取りと書き込みの効率を向上させるためにメモリ テーブル Heap を使用することをお勧めします。このソリューションは非常に実用的であり、広く使用されていると思います。欠点は、セッションの同時読み取りおよび書き込み機能が MySQL データベースのパフォーマンスに依存することです。同時に、データ テーブルからセッション レコードを定期的に更新および削除できるように、セッション削除ロジックを自分で実装する必要があります。同時実行性が高すぎると、テーブル ロックが発生しやすくなります。行レベルのロックを備えたテーブル エンジンを選択することもできますが、セッションを保存するためにデータベースを使用するのは、まだ少しやり過ぎであることを認めざるを得ません。

3. クッキーに基づくセッション共有

このソリューションは私たちにとって馴染みのないものであるかもしれませんが、大規模な Web サイトでは現在でも一般的に使用されています。原則としては、サイト全体のすべてのユーザーのセッション情報を暗号化してシリアル化し、それをクッキーの形式でルートドメイン名 (.host.com など) に均一に埋め込むことです。ブラウザを使用してルートドメイン名の下にあるすべての第 2 レベル ドメイン サイトにアクセスすると、ドメイン名に対応するすべての Cookie コンテンツの特性が渡され、複数のサービス間でユーザーの Cookie セッションの共有アクセスが実現されます。

このソリューションの利点は、追加のサーバー リソースを必要としないことです。欠点は、http プロトコル ヘッダーの長さの制限により、保存できるユーザー情報が少量だけであることです。同時に、Cookie ベースのセッション コンテンツは安全に暗号化および復号化される必要があります (プレーン テキストの暗号化と復号化には DES、RSA などを使用し、偽造防止認証には MD5、SHA-1 などのアルゴリズムを使用するなど)。さらに、ブラウザは現在のドメイン名の下にあるリソースを要求するときにローカル Cookie を http ヘッダーに添付してサーバーに渡すため、一定量の帯域幅リソースも消費します。

4. Memcache に基づくセッション共有

Memcache は、Libevent マルチチャネル非同期 I/O テクノロジーに基づくメモリ共有システムです。シンプルなキー + 値のデータ ストレージ モードにより、コード ロジックが小さく効率的になるため、同時処理機能において絶対的な利点があります。私が経験したプロジェクトでは、1 秒あたり平均 2000 クエリを達成しましたが、サーバーの CPU 消費量は依然として 10% 未満でした。

Memcache のメモリ ハッシュ テーブルに固有の Expires データの有効期限と削除のメカニズムがセッション有効期限のメカニズムと一致しているため、期限切れのセッション データを削除するコードの複雑さが軽減されることも特筆に値します。 「データベース ベースのストレージ ソリューション」と比較すると、このロジックだけでデータ テーブルに大きなクエリ負荷が発生します。

5. Redis ベースのセッション共有

<<:  クラウドコンピューティング: 三国志風の「クラウド」

>>:  LVS、Nginx、HAProxy がどのように動作するかを本当に理解していますか?

推薦する

インターネット侵害取締措置が開始され、違法ウェブサイトの報告に対して最大1万元の報奨金が支払われる。

国家著作権局と他の4つの部門は、オンライン上の著作権侵害や海賊版と戦うために、2012年に4か月間の...

Yalo-2.5 USD / 512M RAM / 100G HDD / 10Tフロー

yalo.io は、2009 年に設立されたと主張しています (実際の状況は確認できません)。Goo...

政府機関が予約していたドメイン名18件がCNNICに登録され、すべて取り消された。

天津市政府の「予約ドメイン名」が登録されました。 ウェブサイトのスクリーンショットCNNICは、ドメ...

「コンテンツは王様、外部リンクは女王様」その両方を手に入れる方法

SEO担当者として、インターネットの急速な発展に伴い、業界内の競争はますます激しくなり、革新が特に重...

ウェブマスターにとって最も一般的で効果的なプロモーション方法の1つであるQQグループプロモーションについて簡単に説明します。

ウェブマスターになった以上、あなたはウェブサイトの重み、ランキング、トラフィックのために昼夜を問わず...

ネットワークの課題: クラウドからデータセンターまでの監視

サイバー課題を推進する問題ほとんどのネットワーク チームには、急速に進化するネットワークを効果的に管...

SEO最適化の結果を検出し、SEO最適化への近道を見つける方法を学びます

現在、ウェブサイトのSEO最適化を行う際には、通常、ユーザーエクスペリエンスを向上させながら、高品質...

テンセントクラウド、すべてのコア製品の値下げを発表、数十のAIアプリケーションサービスに無料アクセス

5月23日、テンセントの「クラウド+未来」サミットにおいて、テンセントクラウドはCVM、CDN、デー...

ラック「言葉では言い表せない」e: 安価なロシアの独立サーバー、および kvm+vmware シリーズ VPS

ロシアのサーバーが必要な場合は、ラックをご覧ください。モスクワ データ センターの独立サーバーは現在...

クラスターとは何ですか?何が配布されますか? SOAとは何ですか?

従来のシステム アーキテクチャは、1 つのプロジェクトが 1 つの Tomcat で実行される、古典...

電子商取引のボーナス期間は終了: 電子商取引ウェブサイトのトラフィックが60%~70%減少

過去1年間の電子商取引のキーワードといえば、「価格競争」と「倒産」でしょう。一方では、プラットフォー...

図解 Kafka ソースコード NetworkClient ネットワーク通信コンポーネント アーキテクチャ設計

みなさんこんにちは。Hua Zaiです。またお会いできて嬉しいです。前回の記事では、「ネットワーク ...

垂直的女性ネットワークの発展に関する7つの重要な結論

オンライン消費の主力として、女性顧客がウェブサイトの焦点となっている。最近Weiboで大人気となって...