分散型高並列キャッシュ設計システム

分散型高並列キャッシュ設計システム

概要

キャッシュの概要

キャッシュとは

Wiki でのキャッシュの定義: データへの後続のアクセスを高速化するためにデータを保存するために使用されるハードウェアまたはソフトウェアのコンポーネント。キャッシュ内のデータは、事前に計算された結果、データのコピーなどです。一般的なアプリケーション シナリオ: CPU キャッシュ、ディスク キャッシュなど。この記事で言及されているキャッシュは、主にインターネット アプリケーションで使用されるキャッシュ コンポーネントを指します。

キャッシュを導入する理由は何ですか?

従来のバックエンド ビジネス シナリオでは、アクセス量と応答時間に対する要件は高くなく、通常は要件を満たすために DB のみが使用されます。このアーキテクチャはシンプルで、すぐに導入しやすいため、多くの Web サイトでは開発の初期段階でこのアーキテクチャの使用を検討しています。しかし、訪問回数が増え、応答時間に対する要件が増すにつれて、単一の DB では要件を満たすことができなくなります。現時点では、新しいビジネス ニーズを満たすために、DB の分割 (シャーディング)、読み取りと書き込みの分離、さらにはハードウェアのアップグレード (SSD) が検討されるのが一般的です。しかし、このアプローチには依然として多くの問題があり、主に次のような問題があります。

パフォーマンスの向上には限界があり、特にインターネット ビジネスのシナリオでは桁違いの向上を達成することは困難です。ウェブサイトが発展するにつれて、訪問者数は 10 倍、さらには 100 倍に増加することがよくあります。

コストが高いです。 N 倍のトラフィックを処理するには、通常、N 倍のマシン数が必要となり、これは許容できないコストとなります。

1. 分散型高並列キャッシュ設計システム

全体的なアーキテクチャ図

1.2 カスタマイズされたクライアントプロトコル

ビジネスモジュールは、cacheProxyと対話するためにカスタムアプリケーション層プロトコルを使用します。

キャッシュバックエンド全体で使用されるプロトコルとストレージ (redis、memcached など) は何ですか?これはビジネス モジュールに対して透過的でしょうか?

キャッシュバックエンドとビジネスエンドは分離されており、変更は互いに影響しません。

1.2 負荷分散とフォールトトレランスメカニズム

一貫性のあるハッシュ アルゴリズムを使用すると、一部のノードがダウンしてもすべてのキャッシュが失敗することはなく、新しいノードを追加しても多数のキャッシュが失敗して再構築されることもありません。

キャッシュされたデータは、現在のハッシュ ノードと次の実際のハッシュ ノードの 2 つのコピーに保存されます。 1 つのノードがダウンしても、キャッシュはすぐに無効になるわけではありません。

cacheManは弱い管理ノードであり、監視、ノードの削除、新しいノードの追加を担当し、任意に起動および停止できます。

1.3 キャッシュの維持と除去のメカニズム

Redis ネイティブのタイムアウト メカニズム + 3 層 LRU キャッシュ アーキテクチャにより、最終的に Redis インスタンスに侵入するリクエストの数が削減されます。

クライアント側LRUキャッシュ

cacheProxy プロキシ LRU キャッシュ

Redis インスタンスの合計メモリ制限 + LRU キャッシュ

1.4 セキュリティメカニズム

Redisインスタンスは認証機能を有効にします

RedisインスタンスはすべてイントラネットIPでリッスンします

1.5 コアプロセス

新しいRedisノードを追加する



Redisノードを削除する

キャッシュを設定

キャッシュを取得

2. 問題

どのプラットフォームでもユーザー規模が拡大し、機能が継続的に追加されるにつれて、永続データベース層に対する読み取りおよび書き込みの負荷はますます大きくなります。データベースに過度の負荷がかかると、読み取りと書き込みのパフォーマンスが急激に低下します。深刻な場合には、多数のビジネス リクエストがタイムアウトし、「雪崩」が発生して重大な障害が発生します。

3. 解決策

ビジネス ロジックで変更されない複雑なクエリ結果をキャッシュするために、ビジネス レイヤーとデータベース永続性レイヤーの間にメモリ キャッシュ レイヤーが導入されます。ビジネス リクエストが再度開始されると、そのたびに最初にキャッシュ レイヤーがクエリされるため、データベースへのクエリの数が大幅に削減され、データベースへの負荷が軽減されます。

4. 分散メモリキャッシュ、ローカルシングルポイントキャッシュ、アプリケーション層キャッシュの比較

型の安定性 拡張性 汎用性 コードへの侵入性

アプリケーション層キャッシュアプ​​リケーションは頻繁に再起動および更新され、キャッシュが失われやすく、安定性が低く、プロセスのリソース制約によって制限され、異なるアプリケーションでコードを再利用することが難しく、侵入が少なく、ネットワーク操作がなく、アプリケーションプロセスメモリのみを操作する必要があります。

ローカルのシングルポイント キャッシュ 頻繁に再起動しない独立したキャッシュ アプリケーション (redis、memcached など) は、安定性は平均的ですが、シングルポイント障害の問題があり、通常は単一サーバーのリソース制限によって制限され、ビジネス アプリケーションとキャッシュ アプリケーション間の結合が強くなります。コードの侵入は平均的であり、対応する API を導入する必要があります。通常、ネットワーク操作があります

分散メモリ キャッシュ分散システムには、自動障害回復機能があり、単一障害点の問題がなく、安定性が高く、水平拡張が適切にサポートされ、ビジネス レイヤーに共通のインターフェイスが提供され、バックエンドの特定のキャッシュ アプリケーションはビジネスに対して透過的です。コードは一般的に侵襲的であり、通常はネットワーク操作を伴う共通 API の導入が必要です。

<<:  第2回全国インテリジェント製造イノベーション・起業家コンテスト決勝が北京で開催されました

>>:  雷軍のキングソフトクラウドは3億ドルを調達し、全面的に値下げして複数の垂直分野に進出

推薦する

白山が「デジタルハイブオーキシン」をリリース、デジタル変革が光の時代を切り開く

デジタル化の岐路を楽に乗り切るには?これは多くの伝統的な企業や政府機関にとって特に問題です。これに対...

最適化におけるフレンドリーリンクの役割について3つの側面から簡単に説明します。

フレンドリーリンクの交換は、ウェブマスターなら誰でもよく知っていると思います。自分で見つけるにしても...

破損したハードドライブを回復するにはどうすればいいですか?

修復ソフトウェアを使用したり、プロのハードドライブ修復メーカーを見つけたりするのはそれほど難しくあり...

モバイル検索戦争が迫る、UCは大手各社が震えていると主張

新浪テクノロジー 張南「UCのモバイル検索参入に対する百度からの強い反応は、私たちの予想をはるかに上...

deepnetsolutions-$2/512M メモリ/50G ハードディスク/500G トラフィック/ロサンゼルス/モントリオール

deepnetsolutions には、ロサンゼルス、モントリオール、マイアミの 3 つのデータ セ...

マシンフラッシュASOの原理は何ですか?マシン上で ASO を実行する方法を 1 つの記事で理解しましょう。

1. ASOとは何ですか?主に機械と一連の方法を使用して Apple のアルゴリズムをクラックし、...

serverhub: 月額 79 ドル、米国サーバー (7 つのデータセンター利用可能)、2*e5-2650v2/128g メモリ/1TSSD/1Gbps 無制限トラフィック、

米国の老舗ブランドサービスプロバイダーであるServerhub(2002〜)は、現在、米国/ポーラン...

Spring Cloud はマイクロサービス アーキテクチャを構築します: 分散サービス トラッキング (はじめに)

これまでの N 回のブログ投稿の紹介を通じて、実際にそれらを使用してビジネス ニーズを満たす基本的な...

微博が支援するオアシスがなぜ人気がないのか?

WeiboがOasisを開発した理由については、すでに多くのオンラインプラットフォームで非常に興味深...

HP、1TBのストレージスペースを無料でアップグレード

HP は PC クライアントに最大 1TB の無料ストレージ スペースを提供しており、データの保存や...

インターネット上で優れた SEO サービスを提供する方法

みなさんこんにちは、オールドボーイSEOスタジオのシトウです。昨今、個人のSEO依頼を受けるSEO業...

サイバーマンデーVPSセールの概要

一般的に言えば、VPS 業界はこれらのいわゆるローエンダーによって台無しにされており、通常の価格は底...

学習を容易にする Kubernetes の 5 つの重要な概念

Kubernetes は、最も人気のあるオープンソースのコンテナ オーケストレーション ソリューショ...

有能なSEO担当者は成功まであと一歩です

最近、新しい会社に勤めましたが、本当にプレッシャーを感じました。学ぶことの大切さを実感しましたし、多...

Commvault と Alibaba Cloud が協力し、ハイブリッド クラウド データ管理ソリューションを提供

[[232240]]エンタープライズ バックアップ、リカバリ、アーカイブ、クラウド サービスの世界的...