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

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

概要

キャッシュの概要

キャッシュとは

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億ドルを調達し、全面的に値下げして複数の垂直分野に進出

推薦する

VMware のイノベーションが、マルチクラウド時代を乗り切るお客様をサポ​​ート

VMware Explore 2022 カンファレンスでは、世界をリードするエンタープライズ ソフト...

クラウド アプリケーション管理の未来: 分散クラウド環境

クラウドベースの開発が拡大し、パフォーマンスと信頼性の要件が高まり続けるにつれて、パフォーマンスとセ...

Baidu アプリをホームページに掲載する方法 SEO 技術分析

Baiduアプリケーション検索を表示するいくつかの方法さまざまなキーワードで Baidu アプリを検...

Google と Google ランキングを最適化する方法の解釈

Google のランキングを最適化するにはどうすればいいですか? 1. タイトルにキーワードが表示さ...

xenspec: 米国ホームサーバー、10Gbps 専用帯域幅、月額 449 ドルから、2*e5-2667v3/32gDDR4/1TSSD

米国の住宅用 IP、米国の住宅用 ADSL、米国の住宅用 IP、米国の住宅用 ADSL。 xensp...

ウェブサイトのキーワードがBaiduの2ページ目に長期間ランクインしている理由

私は毎日オリジナルコンテンツを更新し、毎日友好的なリンクを交換し、毎日外部リンクを投稿し続けました。...

ウェブサイトの持続可能な開発で利益を上げる方法

インターネットの発展に伴い、インターネットを通じて富を創造できるという奇跡に魅了されて、インターネッ...

地域情報サイトを簡単に運営する方法

Leshan Onlineの運営を始める前に、私は比較的詳細な調査を行いました。人口数百万人の楽山市...

SEO の黄金の連鎖における偽りの「金」の誘惑

「ゴールデン チェーン」という用語は、ウェブマスターの友人にはおなじみのはずです。一般的な説明では、...

SEOに関する私の経験についてお話ししましょう

SEO は誰もが行う必要があることは知っているかもしれませんが、どのように行うのか、多くの人は「コン...

INIZ-独立記念日VPS特別プロモーション、年間9.6ドルから

niz は英国で正式に登録された会社です。会社番号は 08199520、登録事務所住所は 45-15...

スタンドアロンモバイルゲームの失われた道

「今、誰がまだスタンドアロンゲームを作っているのか?誰もがモバイルオンラインゲームを作っている。オン...

最近のウェブサイトKのソリューションを分析する

みなさんこんにちは。私はハルビンバーチャルアンドリアルウェブサイトデザインです。最近、私のメインウェ...

製造業におけるエッジコンピューティングゲートウェイアプリケーション

モノのインターネット技術の継続的な発展により、エッジ コンピューティング ゲートウェイは生産および製...

vdsina: ロシアの VPS (datapro)、6 ルーブル/日、1G メモリ/1 コア (AMD EPYC 7742)/5gNVMe/10T トラフィック

今日、vdsina がコストパフォーマンスに優れた AMD EPYC シリーズ VDS を発売したと...