導入 理論計算機科学において、CAP 定理 (ブリューワーの定理とも呼ばれる) は、分散コンピューティング システムが次の 3 つの条件を同時に満たすことは不可能であると述べています。
定理によれば、分散システムは 3 つの条件のうち 2 つしか満たすことはできず、3 つすべてを満たすことはできません。 CAP 定理を理解する最も簡単な方法は、パーティションの両側に 2 つのノードがあると想像することです。少なくとも 1 つのノードが状態を更新できるようにすると、データの不整合が発生し、C プロパティが失われます。データの一貫性を確保するためにパーティションの片側のノードが使用不可に設定されている場合、プロパティ A は失われます。 2 つのノードが相互に通信できない場合、C と A の両方が保証され、プロパティ P が失われます。 この定義はあなたを混乱させますか?何度か読み返すと、少し理解が深まったように感じるでしょう。 CAP理論は非常に抽象的に聞こえます。この記事では、実際の例を使用して、わかりやすい言葉で CAP 理論の意味を説明します。 CAP短編小説 この話はとても面白いです。リンク https://zhuanlan.zhihu.com/p/265670196 をクリックしてご覧ください。または、クリックして元のテキストを読むこともできます。この小さな物語を読んだ後では、前述の定義を理解しやすくなると思います。 キャップトレードオフ CAP 理論では、一貫性、可用性、分断耐性の 3 つの特性を同時に満たすことはできません。では、どのようにバランスをとるのでしょうか。 CAを選択し、Pを放棄する この状況は分散システムでは基本的に不可能です。分散環境ではパーティショニングは避けられないため、P を放棄するということは分散システムを放棄しなければならないということであり、CAP 理論についてこれ以上議論する必要はありません。 CPを選択しAを放棄する 分散システムが可用性を実現できず、頻繁にクラッシュしたりサービスの提供を停止したりすると、過去の「WeMall データベース削除インシデント」と同様に、ユーザー エクスペリエンスは非常に悪くなります。すべてのデータが取得されるまで、外部へのサービスの提供は継続されません。この期間中のダウンタイムはどのくらい続き、販売者にどのくらいの損失が発生するのでしょうか。当社の一般的な CP 分散システムには、分散データベース (redis) や Zookeeper などがあり、システムの可用性を犠牲にして強力なデータ一貫性の確保を優先しています。 APを諦めてCを諦める 高可用性を確保し、パーティションを許可する場合は、一貫性を放棄する必要があります。ネットワークの問題が発生すると、ノード間の接続が失われる可能性があります。高可用性を確保するには、ユーザーがデータにアクセスしたときに即座に応答を得る必要があります。したがって、各ノードはローカル データを使用してのみサービスを提供できるため、グローバル データに不整合が生じます。現在、ほとんどのシナリオでは、一貫性を犠牲にして可用性が選択されます (最終的な一貫性を維持)。春節に紅包を手に取るときと同じように、いくらのお金を手に取ったかはすぐにはわかりませんが、しばらくしてからもう一度確認するように促されます。春節期間中にチケットを購入したとき、この高速列車にはまだスタンプが押されていることがはっきりとわかりましたが、認証コードを入力して乗客情報を送信すると、チケットがないと言われました。リストページに戻って列車を確認すると、まだチケットがあることが表示されました。これらのユーザーエクスペリエンスは少し不親切ですが、許容範囲内です。 まとめ CAP に関しては、これより良い選択肢はありません。ビジネスシナリオに応じて選択し、自分に合ったものを選択するだけです。 基本理論 BASE: 完全な名前: 基本的に利用可能、ソフト状態、最終的に一貫性がある。これはeBayの建築家によって提案されました。ベース理論は、CAP における一貫性と可用性のトレードオフの結果です。これは、大規模なインターネット分散実践の要約から生まれ、CAP 定理に基づいて徐々に進化してきました。中心となる考え方は次のとおりです。 強力な一貫性を実現することはできませんが、各アプリケーションは、独自のビジネス特性に基づいて、システムが最終的な一貫性を実現できるように適切な方法を採用できます。 基本的に利用可能 基本的な可用性とは何ですか?基本的な可用性を確保するために、パフォーマンス (サービス応答時間) とエクスペリエンス (部分的な機能エクスペリエンス) を犠牲にします。パフォーマンスを犠牲にする: たとえば、製品を照会する場合、通常の応答時間は約 1 秒ですが、基本的に利用可能な場合は、応答時間は約 10 秒になります。体験の犠牲: たとえば、ダブルイレブンショッピングフェスティバル期間中、Taobao はコア機能 (注文、支払いなど) のみが利用可能であることを保証しますが、その他の非コア機能 (返品、住所変更など) はダウングレードされます。ダウングレードの詳細については、以前の記事「高同時実行システムの 3 つの優れたツールのうちのダウングレード」を参照してください。 ソフトステート 全体的な可用性に影響を与えずに中間状態を許可するということは、システムが複数の異なるノード上のデータ コピーでデータ遅延を許可することを意味します。 最終的な一貫性 上記で述べたソフト状態ですが、常にソフト状態であるわけではなく、時間制限があるはずです。期限後は、すべてのコピーでデータの一貫性が維持されることが保証される必要があります。これにより、最終的なデータの一貫性が実現されます。この時間制限は、ネットワークの遅延、システムの負荷、データ複製ソリューションの設計などの要因によって異なります。 システムは、他の新しい更新操作がない場合、データが最終的に一貫した状態に到達することを保証できるため、システムのデータにアクセスするすべてのクライアントは最終的に最新の値を取得します。 仕上げる 私の知識が限られているため、抜け漏れが必ずあるでしょう。間違いを見つけた場合は、メッセージを残して指摘していただければ修正いたします。 この記事はWeChatの公開アカウント「java Finance」から転載したものです。以下のQRコードからフォローできます。この記事を転載する場合は、Java Finance Public Account にお問い合わせください。 |
<<: 分散トランザクションのシナリオとソリューションを徹底的に理解するのに役立つ 12 枚の写真
>>: クラウドデータ管理はホスティングサービスプロバイダーにデータ保護を提供します
競争力のある企業をいかに構築するかは、多くの経営者が考えてきた問題です。実際、その答えに影響を与える...
[[408723]] 7月1日、市場調査会社ガートナーは2020年の世界的なインフラストラクチャ・ア...
近い将来、人工知能が銀行業務のやり方を変える可能性があるとすれば、Inspur AIStation ...
最近、流行のTシャツを販売している「ShirtPunch」(サイトの紹介はこちら)という非常に興味深...
友人の中には、若くて語彙が足りない人や、面倒で「説明できない」翻訳ソフトウェアを使いたくない人がいる...
私自身も小さなビジネスを始めました(誤解を避けるために、ここでは何のビジネスかは言いません)。これま...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますあなたのカ...
クラウドコンピューティングが物流業界の動向をどう変えているのかクラウド コンピューティングは、現代の...
テンセントテクノロジー 孫石/文最近、ネットユーザーは、ウェン・チャン、マー・イーリー、ヤオ・ディの...
6月28日のBaidu Kステーション事件は、2012年にインターネットに影響を与えた最もホットな出...
Hostdare は新年プロモーションを実施しています。アジア回線 (quadranet、ロサンゼル...
aeserver はアラブ首長国連邦最大の都市ドバイに登録され、2005 年に事業を開始しました。同...
SEO を行う際に、競合他社に敬意を払い、彼らから学ぶことができれば、将来歩める道はより広くなるでし...
セキュリティベンダーは、Putty および WinSCP ソフトウェアの一部の中国版にバックドアが組...
SEO とは何ですか? 多くの友人が不満を言うのを聞いたことがあります。なぜランキングのために一生懸...