運用・保守に必読! CAP分布の最も簡単な説明は次のとおりです

運用・保守に必読! CAP分布の最も簡単な説明は次のとおりです

[[345334]]

CAP 理論は分散システムの基本理論であり、分散システムは、次の 3 つの特性のうち最大でも 2 つしか満たすことができないことを説明しています。

  1. 一貫性
  2. 可用性
  3. パーティション耐性

CAP理論は非常に抽象的に聞こえます。この記事では、実際の例を使用して、わかりやすい言葉で CAP 理論の意味を説明します。

1. メモリ会社の立ち上げ

ある夜、あなたが寝る準備をしていると、妻が誕生日を覚えていてプレゼントをくれたことに感謝してくれました。この時点で、あなたの頭にビジネスアイデアがひらめきます。人生において、人は物事を記憶するのが苦手なものですが、私は優れた記憶力を持っているので、私の記憶力を最大限に活用してお金を稼ぐことができる会社を設立するのはどうでしょうか。次に、地元の新聞にメモリ会社の広告を掲載しました。

メモリーカンパニー——あなたのものは決して忘れられません

いつも忘れてしまうのではないかとまだ心配していますか?良いニュースは電話一本で届きます。

何かを覚えておく必要がある場合は、400 - 888 - 8888 に電話して、覚えておく必要があることを伝えてください。次回取り戻す必要がある場合は、再度お電話ください。必要な情報をお伝えします。

料金:1回につき10元のみ。

以下はあなたと顧客との間の電話での会話です。

顧客: 隣人の誕生日を思い出すのを手伝ってもらえますか?

こんにちは。あなたの隣人の誕生日はいつですか?

顧客: 1月2日。

あなた: (ノートで、この顧客のページを開いて、隣人の誕生日を書き留めます。) OK、記録されました。次回、隣人の誕生日が分かったら、もう一度電話してください。

お客様:ありがとうございます。

あなた:どういたしまして。今回の料金は10元です。

2. 事業拡大

時が経つにつれ、メモリ会社のビジネスはどんどん成長し、サービスを必要とする顧客からの電話も増えていきました。どんどんお金は稼げるようになったものの、新たな問題も発生しました。電話をかけてきた顧客は、ますます長い時間待たされることになります。また、あなたが病気のときにすべての顧客がサービスを受けられないのは迷惑です。

そこで、あなたは新しい計画を思いつきました。あなたとあなたの妻が同時に顧客からの電話を受け、顧客は 1 つの会社のサービス電話番号 400-888-8888 だけを覚えておけばよいのです。ルーターは顧客からの電話をあなたと奥さんの電話に分配します。

3. サービスがうまくいかなかった

新しいプランを開始してから 2 日後、常連客のジョンから電話がかかってきました。

ジョン: やあ

あなた: こんにちは、メモリカンパニーへようこそ。どのようなご用件でしょうか?

ジョン:ニュージャージー行きのフライトがいつになるか教えていただけますか?

あなた:もちろんです。 (その後、ジョンのページを開くと、ジョンの飛行の記録がないことがわかります)

あなた: こんにちは、これは間違いです。お客様のフライトに関する情報はありません。

ジョン:何? !昨日、ニュージャージー行きのフライトについて電話しました。

何が悪かったのでしょうか?ジョンは嘘をついたのでしょうか?何が悪かったのかを考え続けます。奥さんが電話を受けたのでしょうか?あなたは妻の机まで歩いていき、彼女がノートにジョンのフライトについて書き留めていることに気づきます。そのとき、あなたは問題の原因に気づきます。妻がジョンの電話に出たのに、あなたのノートにはジョンの記録がなかったのです。

上記の実装計画を分散設計と呼ぶ場合、この設計には明らかな問題、つまり一貫性の問題があります。着信に対して1人の担当者が応対し、録音したとしても、次回問い合わせの電話をしたときには別の担当者が応対するなど、不整合が生じ、お客様に対して正確なサービスを提供できなくなります。

4. 一貫性の問題を解決する

夜、ベッドの中で寝返りを打って、ようやく一貫性の問題に対する解決策を思いつきます。あなたは妻に新しい計画を伝えます。

録音された電話(お客様の持ち物に関する問い合わせ)を受けるたびに、別の担当者にも連絡します。

こうすることで、私たち二人ともノートブック内の顧客の記録を更新します。

次回この顧客が問い合わせの電話をかけてきた場合、両方の帳簿にこの顧客の記録があるため、通知する必要はありません。

このアプローチには 1 つだけ問題があります。レコードを必要とする顧客がいる場合、並行して作業することはできないと妻に伝えます。例えば、録音された通話を受信し、その情報を私に知らせた場合、他のお客様からの電話に応答できなくなります。しかし、ほとんどの顧客は問い合わせの電話をかけてくるので、この問題は基本的に許容範囲です。

旦那様、あなたはとても賢いですね、奥様も褒めていらっしゃいますが、このデザインにはまだ問題があります。何らかの理由で私たちのどちらかが働けなくなったらどうなりますか?録音通話を受信するたびに 2 つのブックを同時に更新する必要があるため、お客様に録音サービスを提供できず、可用性の要件を満たすことができません。たとえば、録音された通話を受信したときに、お客様が不在のため、このお客様へのサービスを完了できない場合があります。これは、本を更新するように依頼できないためです。

5. より良い方法

そうして初めて、分散システムを設計することがいかに難しいかが分かります。一貫性と可用性の両方を満たす設計はないのでしょうか?

もう一晩考えた後、両方の長所を兼ね備えた解決策を思いつきました。新しいソリューションは以前のものと非常に似ています。あなたは妻に新しい方法について伝えます。

録音の電話を受けたとき(お客様から録音を依頼されたとき)、その日私たち両方が仕事中であれば、お客様の録音を同時に録音します。

ただし、相手がその日に仕事に行けない場合は、その記録をメールで送ることができます。

翌日、出勤しなかった人たちが職場に到着して最初にやったことは、すべての電子メールを受信し、顧客の要望をすべてノートに記録することでした。録音後、最初の電話を受け始めました。

それは天才的よ、と妻は言いました。この方法に問題は見当たらず、一貫性と可用性の要件を同時に満たすことができます。

6. 妻は怒っている

会社の業務は長い間通常通り運営され、ご本人様と奥様のどちらかが不在でも、通常通りサービスを提供できました。

好景気は長くは続かず、新たな問題が浮上した。

ある日、あなたの妻は些細なことであなたに対して激怒し、あなたに何も言わずに記録を必要とする顧客からの電話を受けました。両方の本で記録が更新されなかったため、デザインは完全に壊れています。あなたのデザインは、2人の間の良好なコミュニケーションを前提としています。通信が失敗すると、システムに問題が発生します。つまり、設計はパーティション許容度の要件を満たしていません。

もちろん、通信が不可能な場合でもサービスの提供を継続することも可能です。このように、顧客を記録する必要がある場合、一貫性の要件を満たす必要があるため、この顧客へのサービスを完了できず、つまり可用性を満たすことができません。 。 。

七。結論

もう一度CAP理論に戻りましょう。 CAP 理論によれば、分散システムを設計する際には、一貫性、可用性、およびパーティション耐性の要件を同時に満たすことはできません。最大で 2 つの要件しか満たすことができません。正式な証明については、CAP 理論の証明を参照してください。

  • 一貫性: 顧客が記録を更新すると、次回確認するために電話をかけたときには常に最新の記録が表示されます。
  • 可用性: あなたと奥様が仕事中であれば、メモリーカンパニーはいつでもお客様にサービスを提供できます。
  • パーティション耐性:あなたと奥様がコミュニケーションが取れなくても、Memory Inc.はサービスを提供できます

番外編:舞台裏のレコーダー

上記で設計されたシステムには、まだ最適化の余地があります。メモリ会社は録音担当者を雇うことができ、あなたまたはあなたの妻のどちらかが顧客からの録音された電話を受けると、録音担当者は裏でその記録を相手のノートに書き込みます。こうすることで、録音された通話によって相手側のサービスが中断されることがなくなります。多くの NoSQL システムでこの方法が使用されています。ノードがデータを更新すると、その背後で他のノードとデータを同期するプロセスが実行されます。

この設計の問題点は、一貫性が短期間失われる可能性があることです。たとえば、顧客が電話をかけてきて記録を要求し、妻が電話に出たとします。その後、顧客が再度問い合わせの電話をかけ、あなたは電話に出ます。レコーダーがお客様の記録をお客様の帳簿内で更新していない場合、お客様は正常に問い合わせを行うことができません。このような可能性はありますが、録音通話の直後に顧客が問い合わせの電話をかけることはほとんどないため、ノートブックの内容に不一致が生じる可能性は非常に低いため、あまり心配する必要はありません。

<<:  クラウドネイティブセキュリティツールを使うべき時と使わないべき時

>>:  HPA PaaS コミュニティが設立されました!

推薦する

海外のクラウドサーバーレンタル業者が推奨、価格が安く、スピードが速く、アフターサービスも充実

自分に合った海外クラウドサーバーを選ぶには?海外のクラウドサーバーベンダーは数多く存在し、その品質も...

天一クラウドは包括的なAIを創造し、あらゆる業界にAIを適用可能にする

2020年、新型コロナウイルス感染症との戦いにおいて、AI体温測定、AIフィルム読み取り、AI速達車...

仮想化の基礎についてお話ししましょう

導入始める前に例を挙げましょう。シナリオは次のとおりです。サーバーには 8G のメモリしかなく、プロ...

なぜ誰もが Kubernetes を使いたがるのでしょうか?

正直に言うと、私は Kubernetes の愛好家です。 Kubernetes はソフトウェア開発分...

クラウドネイティブ時代では、すべての卵を一つのカゴに入れないでください。

51CTO読者成長計画コミュニティ募集、コンサルティングアシスタント(WeChat ID:CTOji...

一般的なパブリック DNS サーバー アドレス

DNS は、ドメイン ネーム システムの正式名称で、インターネット上でユーザーがパスを見つけるのに役...

GoogleとBaiduのもう一つのアイデンティティ:ドメイン名登録業者

この記事を始める前に、まず明確にしておきたいのは、Google は長い間世界トップクラスのドメイン名...

nuxtcloud: 安価なロシア + ドイツの VPS、月額 139 ルーブル (11.3 元)、1G メモリ/1 コア/15g NVMe/100M 帯域幅 (トラフィック無制限)

2017年に設立されたロシアのVPS業者nuxt.cloudは、主にロシアのモスクワとドイツのデータ...

インターネット上で「最も醜い」認証コードがオンラインになり、医療画像の注釈付けと診断に役立つ

2月3日、テンセントは深セン大学と共同で一連の「特別な」認証コードを開発し、リリースした。他の一般的...

SEOの決定: 効果的な戦略か適切な戦略かの選択

なぜ、効果的な戦略と正しい戦略のどちらを選ぶべきなのか、という疑問を持つ人がいるのでしょうか。成果を...

江島クラウド:企業のデジタル革新を促進する普遍的な開発

デジタル時代においては、すべての人による「開発」が新たな働き方となるでしょう。ガートナーの分析による...

Fanyun: 新しい香港 CN2 ノード、10% 割引、月額 22 元から、1G メモリ/1 コア/20g SSD/5M 帯域幅/無制限トラフィック

Fan Yun は、米国の cn2 gia (ロサンゼルス) ノードに続き、わが国の香港データセンタ...

モノのインターネットの爆発的な普及により、エッジコンピューティングの進歩が求められている。

調査会社IDCによると、モノのインターネット(IoT)への支出は2020年までに1.3兆ドルに達し、...

ウェブサイトの価値を高める7つのコンテンツ戦略

2013年、インターネット時代は急速に発展し、さまざまなレベルのウェブサイトが出現し、インターネット...

SEOデータ分析スキル2:ウェブサイトコンテンツ品質分析

みなさんこんにちは。私は徐子宇です。前回の記事「SEOデータ分析スキル1:キーワードランキング分析」...