分散システムにおけるセッション共有の 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 がどのように動作するかを本当に理解していますか?

推薦する

リンク交換の過程でのコツやテクニックを共有する

Baidu は時々本当に残酷です。たとえば、6 月 28 日頃のアップデートです。私のウェブサイトの...

redswitches-$6/KVM/Onapp/2g メモリ/50g ハードディスク/1T トラフィック/オランダ

redswitchesさん、私はこの会社についてよく知りません。担当者は、この会社には6年間の業界経...

SEOスペシャリストがBaiduプラットフォームを有効活用する方法

SEO 担当者として、常に発見し、試し、実験し、考え、まとめることでのみ、この道を順調に進むことがで...

スパイダーがあなたのウェブサイトを訪問しない理由をご存知ですか?

私のように、多くのウェブマスターは毎日ウェブサイトのログをチェックする習慣があり、ログを分析して、ス...

Joomla ウェブサイトを最適化するための 11 の簡単な手順を共有します

CMS システム管理の選択肢として Joomla を選択した場合、あなたは「幸運な」ウェブマスターで...

オンライン移民SEO担当者の今後の発展方向に関する提案

検索エンジンというプログラムを毎日扱う職業があります。このプログラムを満足させるために、彼らは毎日疑...

ウェブサイトの成功の鍵は突破口を見つけることです

SEOに携わり始めて4年以上経ちました。正直に言うと、今私に外部リンクを貼れと言われたら、私は外部リ...

Docker イメージの削減: 1.43G から 22.4MB へ

[[420174]]画像はBaotu.comより以下は、ReactJS プログラムの簡単なオンライン...

#おすすめ# contabo: ドイツのサーバー、ハイエンドハードウェア + 大きな帯域幅 + 無制限のトラフィック

ドイツの老舗ホスティング会社であるcontaboを例に挙げてみましょう。同社は独自のコンピュータール...

Kubernetes をローカルで実行するための 4 つのオープンソース ツール

Kubernetes は、コンテナ化されたアプリケーションの展開、スケーリング、管理を自動化するため...

福州SEO: SEO初心者とデータアナリストの違いについて簡単に説明します

データ分析の役割は、すべての SEO 担当者にとって自明です。データ分析は、ウェブサイトの運用、ウェ...

分散ストレージの7つの問題

モチベーションなぜ7つの側面の問題なのでしょうか? 7 辺は 6 辺より 1 辺多く、8 辺より 1...

zji: 香港サーバー 55% オフ、638 元、10M cn2+bgp、2*e5-2630L/32g メモリ/1tSSD

香港・大埔にあるZjiの自社運営独立サーバーでは、3つのモデルが55%オフで販売されており、更新によ...

Office正規版はたったの9.95ドル

ホストドメイン名とはあまり関係ない記事を投稿します。それを見た時に、みんなにシェアしたいと思いました...

6.22 6.28百度事件後、まだKステーションを続けているウェブマスターは自分自身を振り返る必要がある

6.22 6.28の事件からしばらく経ちましたが、Kのサイトはまだ回復していません。いくつかのサイト...