電子商取引プラットフォームで商品を購入したり、ソーシャル ネットワークで話題のトピックを閲覧したりすると、現在のネットワーク データ トラフィックの恐ろしさをはっきりと感じることができます。何十万もの製品が、購入可能になってから 1 秒も経たないうちに売り切れてしまいます。大物スターの不正行為のニュースが出ると、閲覧数やリポスト数は瞬く間に数億に達することもあります。エンドユーザーとしては、このような厳しい交通環境でサービスシステムがどのように存続するのか疑問に思うかもしれません。 実際、サービス システム アーキテクチャには、このような問題に対処するための巧妙な設計が数多くあります。その中で、システムは通常、大量のアクセス要求やデータの影響を軽減し、高性能なアクセス要件を満たすためにキャッシュ システムを設定します。 同時に、マイクロサービスやクラウドなどのテクノロジーの発展に伴い、分散アーキテクチャの需要がますます一般的になっています。さらに、Web 上のデータの種類は単一ではなくなり、データ量は爆発的に増加しています。従来の構造化ストレージ ソリューションでは対応できなくなり、データベースの SQL 操作が要件を満たさなくなったため、NoSQL が登場しました。 これらの技術的ソリューションを統合することで、分散型 NoSQL キャッシュ システムを設計できます。現在、Memcached や Redis など、このタイプのシステムには比較的強力なオープンソース ソリューションがいくつかあり、サービス システム全体の可用性、スケーラビリティ、パフォーマンスに重要な役割を果たしています。 Tencent が最近、分散 NoSQL ストレージ システム DCache をオープンソース化したと聞きましたが、その代表的な適用シナリオは分散キャッシュです。公式紹介によると、DCache は TARS マイクロサービス ガバナンス ソリューションに基づいています。 kv、kk-row、list、set、zset などの複数のデータ構造をサポートします。データはメモリに保存され、データの永続性のために後続の DB 接続をサポートします。 DCache は、水平方向に迅速に拡張できる機能を備えており、効率的な運用と保守を実現するための Web 運用保守プラットフォームも備えています。 私たちは、プロジェクトの研究開発の背景と関連する技術的な詳細をより深く理解したいと考え、DCache 研究開発チームのメンバーである Shan Baoyin にすぐにインタビューしました。 現在のオープンソースの分散キャッシュ システムの中で、Memcached と Redis は非常に一般的な選択肢です。テンセントは今回、なぜ独自のシステムを構築したのでしょうか? Shan Baoyin 氏は、Memcached と Redis 自体は非常に強力な機能を備えているものの、運用と保守が難しい、クラスタリング ソリューションが不足している、マイクロサービス トレンドによってもたらされる課題に対応できないなどの問題があると紹介しました。 たとえば、マイクロサービスは現在大きなトレンドであり、コンピューティングとストレージを分離し、軽量な通信を実現できるマイクロサービスについて誰もが話題にしています。マイクロサービスはライフサイクルを管理する必要はありませんが、システム コンポーネントとしての Redis はライフサイクルを管理する必要がありません。 「サービスアーキテクチャを設計する際、ロジック層とデータ層を分離したいと考えています。しかし、キャッシュにRedisを使用すると、キャッシュとDB間のデータの一貫性、およびキャッシュミスの解決方法のために、ユーザーはビジネスロジックで関連する処理を実行する必要があり、特定の複雑さと困難さが増し、ロジック層とデータ層の結合も増加します。」 一方、Shan Baoyin 氏は、当初は膨大なデータと高性能なアクセス要件に直面し、Tencent 内のさまざまなチームが実際に独自のキャッシュ システムを開発したと紹介しました。しかし、これらのシステムには、一貫性のないプロトコル、多様なサービス モデル、普遍的なフォールト トレランスの欠如、および不均一なスケーラビリティがありました。そこで、チームは、ビジネス、開発、運用保守、監視のあらゆる課題を総合的に解決したいと考え、ユニバーサルキャッシュシステムであるDCacheの開発に着手しました。 したがって、DCache は現在、QQ ブラウザ、App Store、Tencent Maps、Tencent PC Manager、Mobile Manager、Tencent Games など、Tencent 内の複数のビジネスで使用されていることもわかります。 SQL、分散、NoSQLのトレードオフ SQL は、データベースの構造化クエリ言語であり、データベースに対する一連の操作コマンドを指します。従来のリレーショナル データベースでは、標準の SQL ステートメントを使用してデータを操作および処理します。分散はソフトウェア システムのアーキテクチャ パターンです。分散システムでは、複数のハードウェアまたはソフトウェア コンポーネントが異なるコンピューターに分散され、メッセージの受け渡しを通じて相互に通信し、外部に対して全体として表示され、統一されたサービスを提供します。 データベース SQL と分散の間には当然矛盾があるというのが一般的な見解です。 Shan Baoyin 氏の理解は、「分散システム内のデータはさまざまなノードに分散されているため、SQL 結合テーブルやトランザクションなどの操作にはグローバル ロック保護が必要になり、処理がより複雑になり、パフォーマンスに影響します。」というものです。 SQL と NoSQL のどちらを選択するかという問題もあります。 NoSQL とは、主に非常に大量のデータを高性能に処理するために使用されるデータベースの一種を指します。主な特徴は、データ構造がシンプルで、キーと値が中心であり、データが互いに関連付けられておらず、水平方向に拡張しやすいことです。 文字通りの意味からすると、NoSQL は SQL の反対であると思われます。 NoSQL を実行するということは、SQL を放棄することを意味するようです。しかし、実はNoSQLの本来の意味は「Not Only SQL」です。これは単なる SQL ではないため、SQL の機能も含めることができます。 「NoSQL は必ずしも SQL を放棄することを意味するわけではありません。実際、SQL 解析および計算ロジックをプロキシ レイヤーに追加して SQL 操作を実装することはできますが、これはパフォーマンスに影響するため、アプリケーションのシナリオとビジネス ニーズに依存します。」 Shan Baoyin 氏は、DCache の「分散 NoSQL」の意味を簡単に分析してくれました。 SQL 処理の観点から見ると、分散には欠点があるようです。しかし、分散化により、より安価なコンピュータを接続できるようになり、コンピューティング能力を最大限に活用できるようになり、高負荷の同時アクセス要求を低コストで処理できるようになります。さらに、分散アーキテクチャには、システム内の単一点の問題によって引き起こされる全体的な障害を回避し、高い可用性を実現するなど、多くの利点があります。 一方、Shan Baoyin 氏は次のようにも述べています。「DCache の主な目標は高パフォーマンスであり、SQL 操作は解決したい主な問題ではないため、DCache は SQL 関数を実装していません。」 DCache の配布戦略と機能 DCache によって提供されるサービスの粒度はグループです。グループはデータ シャードの一部を担当します。各グループがどのデータを提供するかは、ハッシュマッピング後のデータキーの範囲によって決まります。 DCache は、ハッシュ アルゴリズムを使用してデータ キーを 0 ~ 4294967295 (unsigned int) の範囲にマップし、0 ~ 4294967295 の範囲を異なるグループに均等に分割します。たとえば、グループが 2 つある場合、0 ~ 2147483647 の範囲のキーのハッシュ値はグループ 1 に分配され、2147483648 ~ 4294967295 の範囲の値はグループ 2 に分配されます。 グループ内ではマスタースレーブアーキテクチャを採用しており、マスターノードのみが読み取りおよび書き込み要求を受信するため、データの一貫性が保証されます。ホストが利用できない場合は、自動マスター/スレーブ切り替えがトリガーされ、継続的なサービス可用性が確保されます。 DCache アーキテクチャ DCache は etcd や TARS などのミドルウェアに大きく依存しているようですが、そのコア機能と能力はどこにあるのでしょうか? Shan Baoyin 氏は、DCache は etcd に強く依存していないと説明しました。 「etcd は、ルーティング サービス RouterServer の選択のみを伴います。RouterServer が単一のポイントに展開されている場合も使用可能であり、すべての Proxy サービスと Cache サービスにはローカル ルーティング キャッシュがあるため、RouterServer の障害はデータの読み取りおよび書き込みアクセスに影響しません。」 TARS の採用に関して、彼は次のように語っています。「TARS は非常に優れたサービス開発フレームワークであるため、基盤となるネットワーク通信の詳細が隠蔽され、ネーム サービスなどの多くのサービス指向の機能が備わっています。DCache では、既存の TARS フレームワークを使用することで、サービス指向をより適切に実現でき、車輪の再発明を行う必要がありません。」 DCache 自体の機能については、Shan Baoyin 氏は次のように紹介しました。「DCache 独自のストレージ エンジンは高性能で、バックエンド DB 接続をサポートしています。ユーザーは、DB とキャッシュ間のデータ整合性や、キャッシュ ミスによって発生する一連の問題について心配する必要はありません。」 具体的には、DCache の永続性は、Redis の再起動後にデータの回復を確実にするためにローカル ディスクのメモリ内のデータのみをバックアップする Redis とは異なります。 「Redis の永続性は主にデータのバックアップ用です。DCache バックエンドに DB があれば、ビジネス ロジックとバックエンド データを完全に分離でき、DCache 自体がキャッシュと DB 間のデータ一貫性の問題を処理します。」 DCache はバックエンド DB のキャッシュにデータを継続的に保存します。キャッシュの記憶領域が不足すると、DB に保存されているコールド データは削除されます。データ クエリ プロセス中に、クエリ キャッシュがヒットしない場合は、DB から読み取られ、キャッシュに再度保存され、キャッシュ内のデータのホットネスとヒット率が確保されます。同時に、DBとキャッシュ間の侵入問題も解決されます。 さらに、バックエンド DB にデータを保存する機能は、オフライン データ分析を必要とする一部のビジネス シナリオにも便利です。つまり、データについてまったく心配する必要はありません。データをキャッシュに書き込むだけで、バックエンドのランディングは DCache によって処理されます。 ” DCache の機能 さらに、DCache の分散クラスタリング、リモート ミラー展開、災害復旧およびフォールト トレランス機能は、実際のオンライン アプリケーションで非常に高い価値をもたらします。 使用場所 分散ストレージ システムである DCache のアプリケーション シナリオは、キャッシュに限定されません。 Shan Baoyin 氏は、DCache は高性能 NoSQL ストレージ要件のあるあらゆるシナリオに使用できると紹介しました。さらに、DCache には自動容量削減機能と期限切れデータのクリーンアップ機能があるため、ホット データ (人気記事など) や一時データ (時間的制約のあるチャット記録など) を保存する必要のあるシナリオにも適切にサポートできます。 Shanbaoyin は DCache のパフォーマンス データも提供しました。 現在、QQブラウザ、App Store、Tencent Maps、Tencent PC Manager、Mobile Manager、Tencent Gamesなど、テンセント内の約100の事業がDCacheに接続されています。これらのビジネスの規模は想像に難くありません。 Shan Baoyin 氏は次のように付け加えました。「提供される単純なデータに加えて、DCache は、1 日あたりの平均呼び出し回数が 1 兆回を超える、約 100 社の事業の運営を効率的かつ確実にサポートしています。これは、実稼働環境における DCache のパフォーマンスと安定性を間接的に示しています。」 システム自体の高性能、高スケーラビリティ、高可用性、データ セキュリティ設計に加えて、Web 可視化による効率的な運用および保守プラットフォームも、DCache の不可欠かつ重要な機能となっています。メモリベースの NoSQL ストレージ システムでは、運用と保守に多大な追加オーバーヘッドが発生します。関連技術に対する深い理解と、重要な瞬間に的確な判断を下す能力が求められます。 DCache は TARS をベースに開発されているため、運用保守プラットフォームでは DCache と TARS のサービス管理を 1 つのモジュールに統合します。 Shan Baoyin 氏は、運用・保守プラットフォームにより効率が大幅に向上し、運用・保守のハードルが下がると紹介しました。サービスの展開、起動、移行、拡張、監視、構成などの操作を簡単に実現できます。 |
<<: Cisco のヒント: 複雑なネットワーク環境でエンタープライズ セキュリティを確保するにはどうすればよいでしょうか?
>>: 9階建てのタワーは土から始まる:5Gとエッジコンピューティングを支えるサーバープラットフォームの話
有料テーマが無料テーマよりも優れている点は何ですか?より美しい外観とより強力な機能ほとんどの無料テー...
Akkocloud は、ドイツの cn2 gia ネットワークの VPS - 年間および四半期支払い...
仕事をうまくやり遂げたいなら、まずはツールを磨かなければなりません。Weibo の使用にも同じことが...
企業の市場収益を決定する最も重要な位置はどこでしょうか?テレビやラジオの広告の時間ではありません。シ...
コンピュータの普及とインターネットの継続的な発展により、中国のネットユーザーの数は増加しており(専門...
マルチクラウド コンピューティングは大企業の間でますます人気が高まっており、すでに複数のクラウドを使...
コンテンツ集約ページは、Web サイト内の既存のコンテンツを再編成することによって作成されます。ただ...
[[438582]] [51CTO.com クイック翻訳]概要: Kubernetes のボリューム...
crazydomains.com.au がドメイン名のプロモーションを再開しました。最も魅力的なもの...
血なまぐさい、痛い教訓です。6月28日、Baiduはインターネット上の低品質コンテンツを持つウェブサ...
SEO、ウェブマスター、そして勤勉の代名詞です。現在、Baidu の殺人手段はますます恐ろしくなって...
Serverhub は、米国西海岸フェニックスにある有名なコンピュータセンターです。優れた立地と優れ...
実際のユーザーがコンバージョンしなかった理由は、ランディング ページに関係している可能性があります。...
SEO に取り組んでいる期間によって、SEO に対する理解は異なります。たとえば、この業界に入ったば...
ユーザーはウェブサイト運営の中核システムです。大手検索エンジンのアルゴリズムに対する厳しい要求により...