Meituan インタビュー: CAP について話しましょう。私の答え方は非常に特殊です
事例の背景
CAP
理論は分散型です。システム 面接中に面接官が CAP 理論の原理について直接質問することはありませんが、面接中に遭遇した分散システム設計の問題は、CAP の理解と思考を無視することはできません。
そして、面接中、面接官の要件は、異なるポジションで面接する候補者ごとに異なり、回答の深さも異なります。そこで今日の記事では、若手および中級の研究開発エンジニアと上級研究開発エンジニアの 2 つの異なる観点から面接のアイデアを分析します。
事例分析
分散テクノロジーに関する関連知識を勉強していれば、CAP 理論が何を指すのかは基本的に理解できると思います。に: ## #
C ( Consistency
) はデータの一貫性、- ##A (
Availability ) はサービスの可用性、
- P (
パーティション許容値 ) はパーティション許容値です。
CP モデルを選択します。
質問の回答
原理の理解現在、分散システム A があり、これにはコピー A1 があります。通常、この場合、クライアントはシステム A にデータを書き込み、データはノード A からノード A1 に同期され、成功ステータスをクライアントに返します。#Picture

PACELC
今回は、CAP理論を拡張したBASE
理論を導入します。 BASE
は、Basically Available
(基本的に利用可能)、Soft State
(ソフト状態)、および Eventually Consistent
(結果整合性) の 3 つの単語です。これは、システムの可用性を確保し、強整合性を最終整合性に置き換えることを意味します。これは、現在の分散システム設計における最も有益な経験の要約です。では、実際のプロジェクトで設計実践を導くために、BASE 理論をどのように使用すればよいでしょうか?
BASE で基本的に利用可能とは、コア機能の基本的な可用性を確保することを指します。実際には、次のような「可用性
」における妥協です:
E コマースダブルイレブン プロモーションなど、アクセスが集中している Web サイトでは、主要な商品取引プロセスの可用性を確保するために、商品ランキングなどの二次機能の表示をオフにします。これは、よくサービス ダウングレードと呼ばれるものでもあります。
ダブルイレブンのピーク期間中、電子商取引ウェブサイトは、トラフィックのピークを削減するために、先行販売商品の支払い時間を10分から20分遅らせます;
急いでいるとき商品を購入するために、多くの場合、キューに並んで待つことになります。処理。遅延キューとしてもよく使用されます。
ソフト ステートと最終的な整合性とは、システム内のデータが中間状態で存在できるようにすることを指します。これは、システムの可用性を確保するために一定期間内のデータの整合性を犠牲にして、最終的なデータの整合性を確保する手法でもあります。
現在、このデータ処理方法はインターネットの標準的な設計パターンになっています。最も典型的な例は、ユーザーが注文するときに実際に在庫を差し引く必要はなく、在庫を差し引くだけです。フロントで数をカウントし、非同期タスクによりバックグラウンドでバッチ処理します。
初級および中級の研究開発エンジニアに応募したい場合は、理論的な理解から実装まで、上記の考え方と組み合わせることで、CAP 理論
についてより明確に答えることができます。質問に答えるロジックは、私が提供した提案を参照できます:
まず、概念だけを考えるのではなく、理論原理を十分に理解してください。 次に、独自の考え方を持ち、違いを示す必要があります。あなたの思考能力; 次に、理論と実践を組み合わせて、実際に問題に対処するときの思考ロジックについて話し合います。
技術的認識
上級研究開発エンジニアまたはアーキテクトに応募する場合は、回答する際に、自分の知識体系と技術的判断力を可能な限り実証する必要があります。これらは、これら 2 つのポジションの基本的な資質です。分散技術は複雑であり、さまざまな技術が相互に結合しているため、面接では、CAP理論の知識ポイントを通じて明確な分散コア技術知識体系を拡張できれば、他の人とは差別化できるでしょう。
##分散システムはコンピューターに似ています。コンピュータには 5 つの主要なアーキテクチャ (つまり、フォン ノイマン アーキテクチャ) が含まれます。これには 5 つの主要なコンポーネントがあります:
- #Controller
- Operator
- Memory
- 入力
- 出力
- 次のように理解できます。分散システムには、これらの
、その中で最も重要なものはコンピューティングとストレージです。コンピューティングとストレージは一連のネットワーク ノードで構成され、各ノード間の通信は入出力であり、各ノード間のスケジューリング管理はコントローラーです。 #分散アーキテクチャ技術構成
この観点から見ると、分散システムはネットワーク コンピュータに似ており、その知識体系には次の 4 つの観点が含まれます。 # メモリ、つまり NoSQL データベース ストレージなどの分散ストレージ システム、
- 入力と出力、つまり、同期 RPC 呼び出しや非同期メッセージ キューなどの分散システム通信、
##コントローラー、つまり、次のようなスケジュール管理トラフィック スケジューリング、タスク スケジューリング、リソース スケジューリング。 -
分散システムの知識体系は、次の 4 つの観点から要約できます。 それでは、問題の具体的な解決策は何でしょうか? 「Redis を分散ロックとして使用できるか」を例として、問題の背後に隠された分散理論的知識と上級 R&D エンジニアの問題解決アイデアを分析してみましょう。
問題解決のアイデア
実際の問題の説明
通常、setnx メソッドを使用して、Redis 経由でロックとタイムアウトを実装します。ロックの有効期限を制御します。ただし、極端な場合には、Reids マスター ノードがハングアップしたが、ロックがスレーブ ノードに同期されていない場合、センチネル メカニズムに従って、スレーブがマスターになり、サービスを提供し続けます。このとき、別のスレッドが再度ロックを要求することができ、この時点で 2 つのスレッドがロックを取得します。
回帰理論からのガイダンス
CAP 理論の理解によれば、Redis の設計モデルは AP モデルであり、分散ロックです。が CP シナリオである場合、Redis の AP モデル アーキテクチャを CP シナリオに適用することは、基盤となるテクノロジーの選択という点で間違っていることは明らかです。
ナレッジ システムへの拡張
Redis は分散ストレージ システムであるため、分散ストレージ システムの分野に関する知識が必要です。マインドシステム。データ ストレージ、データ分散、データ レプリケーション、データ整合性がどのように実装されているか、それらを実現するためにどのようなテクノロジが使用されているか、およびそのようなテクノロジやアルゴリズムの選択がなぜ必要なのかを考えてください。同じ分散問題に対して、さまざまな手法を多面的かつ多角的に比較分析することを学び、さまざまな手法の長所と短所を総合的に比較検討し、最終的には自分自身の技術的認識と技術的判断を形成する必要があります。
技術的判断
たとえば、Redis を通じて、分散キャッシュ システムの現在の開発状況と技術的な実装について考えることができます。 「Redis」を作成する場合、どのような問題を考慮しますか、など。実際の業務で「車輪の発明」を繰り返すことは推奨されませんが、面接では「車輪の発明」ができる能力をアピールする必要があります。
まとめ
CAP理論は単純に見えますが、面接ではその理解の深さが分散に対する理解度を反映する可能性があります 全体的な理解そしてシステムの制御能力。
したがって、面接中のケースで CAP 原則の質問に答える方法をマスターするだけでなく、質問に答えるためのアイデアもマスターする必要があります。将来、同様の理論的知識の試験に遭遇したときに、次のことができます。 3段階からお答えします。
以上がMeituan インタビュー: CAP について話しましょう。私の答え方は非常に特殊ですの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

Spring について知っている必要があるので、Aop のすべての通知の順序について話しましょう。Spring Boot または Spring Boot 2 は AOP の実行順序にどのように影響しますか? AOP で遭遇した落とし穴について教えてください。

OOM は、プログラムに脆弱性があることを意味します。これは、コードまたは JVM パラメータ設定が原因である可能性があります。この記事では、Java プロセスが OOM をトリガーした場合のトラブルシューティング方法について読者に説明します。

Java並行プログラミングシリーズの番外編「C A S (Compare and swap)」は、絵と文章でわかりやすく、インタビュアーと夢中で会話できるスタイルを保っています。

多くの企業の筆記試験の問題には落とし穴があり、うっかり陥る可能性がありますので、甘く見ないでください。サイクルに関するこの種の筆記試験問題に遭遇した場合は、冷静に考えて段階的に解答することをお勧めします。

「先週、グループの友人が平安保険の面接に行きました。結果は少し残念でした。非常に残念ですが、落ち込まないでほしいと思います。あなたが言ったように、基本的には、ここで出た質問はすべて解決しました」面接は面接の質問を暗記すれば解けますので、頑張ってください!

この記事では、Java String クラスに関する 5 つの面接の質問を取り上げます。私は面接プロセス中にこれら 5 つの質問のうちのいくつかを個人的に経験しました。この記事は、これらの質問に対する答えがなぜこのようになるのかを理解するのに役立ちます。

この記事は合計 30,000 語以上あり、Linux の概要、ディスク、ディレクトリ、ファイル、セキュリティ、構文レベル、実戦、ファイル管理コマンド、文書編集コマンド、ディスク管理コマンド、ネットワーク通信コマンド、システム管理コマンド、バックアップをカバーしています。圧縮コマンドなど Linux のナレッジポイントを分解します。
