1. 分散ロックを実装するためのコンポーネント分散システムでは、分散ロックを実装するために一般的に使用されるコンポーネントは、Redis、Zookeeper、etcd です。それぞれの特徴を比較すると次のようになります。 上の図は3つのコンポーネントの特性を示しています。その中でも、分散ロックにとって最も重要な点は CP 要件です。ただし、Redis クラスターは CP をサポートしていませんが、AP をサポートしています。公式の redlock ソリューションも提供されていますが、複数のインスタンスの展開 (インスタンスの半分以上が成功と見なされる) が必要なため、展開とメンテナンスが比較的複雑です。したがって、一貫性要件が高いビジネス シナリオ (電子商取引、銀行支払い) では、通常、zookeeper または etcd が選択されます。パフォーマンス、同時実行性、メンテナンスコストを考慮して、Zookeeper と etcd を比較します。 etcd は Go 言語で開発されているため、バイナリ実行ファイルに直接コンパイルされ、他のものに依存しないという利点があります。この記事では、etcd を取り上げ、特定の観点について説明します。 2. APが分散ロックに適さない理由CAP 理論では、分散システムにおけるマルチノード通信は必然的にネットワーク遅延、パケット損失などの問題につながるため、ネットワーク パーティションが必然的に発生します。ネットワーク分割が発生した場合、通常は CP または AP の 2 つのオプションがあります。 ① 分散ロックを実装するために AP モデルを選択した場合、クライアントはクラスターマスターノードのロックに成功した後、すぐにロック成功のフィードバックを受け取ります。このとき、マスター ノードがスレーブ ノードにデータを同期する前にダウンした場合、システムはスレーブ ノードからノードを新しいマスター ノードとして選択します。新しいマスター ノードには古いマスター ノードに対応するロック データがないため、他のクライアントが新しいマスター ノードで同じロックを取得できるようになります。このとき、複数のプロセス/スレッド/コルーチンが同じ重要なリソース データを操作するため、データの不整合などの問題が発生します。 ②分散ロックを実装するためにCPモデルを選択します。マスター ノードがデータをスレーブ ノードの半分以上に同期した後にのみ、ロックが成功したと見なされます。このとき、何らかの理由でマスターノードがダウンした場合、システムはデータ損失などの問題を回避するために、スレーブノードからより新しいデータを持つスレーブノードを新しいマスターノードとして選択します。 したがって、分散ロックの場合、データに強力な一貫性要件が課されるシナリオでは、AP モデルは適切な選択ではありません。少量のデータ損失を許容できる場合は、メンテナンス コストなどの理由から、AP モデルの Redis が優先される場合があります。 3. 分散ロックの特徴と動作分散ロックの場合、操作には次のものが含まれます。
4. etcdについて公式ドキュメントは常に最高の学習教材です。 etcd の公式紹介には次のように書かれています:
分散ロックは、etcd が実現できる多くの機能のうちの 1 つにすぎません。サービス登録と検出は、etcd でより多く使用されます。 当局者はまた、多くのコンポーネントを比較し、次のように分類しました。 比較してみると、それぞれの特徴が分かります。どちらを選択するかについては、あなた自身の心の中に答えがあるかもしれません。 5. etcdは分散ロックの関連インターフェースを実装する分散ロックの場合、etcd の対応する追加、削除、更新インターフェースが主に使用されます。
6. etcd分散ロックコードの例
要約する分散ロック機能を提供できるコンポーネントは多数ありますが、それぞれに独自の性質と個性があります。どのコンポーネントを選択するかは、ビジネスにとってのデータの重要性に応じて異なります。データに強力な一貫性が必要な場合は、CP をサポートする etcd と zookeeper が推奨されます。少量のデータ損失が許容され、強力な一貫性が要求されない場合は、AP をサポートする Redis が推奨されます。 |
<<: Centos8にVDOをインストールして設定し、ストレージスペースを最適化する
>>: フランスは、GoogleとMicrosoftのクラウドサービスが機密データを処理できると述べている
6月25日、Cloud Native Computing Foundation (CNCF)が主催す...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスウェブサイトの構築を始め...
クラウド コンピューティングとデータ サイエンスは複雑に関連し、クラウド プラットフォームはデータの...
desivps は現在、中国の顧客向けに、1000Mbps の帯域幅、無制限のトラフィック、無料の ...
SEO の作業において、外部リンクは最も簡単に制御および操作できる要素であり、検索エンジンのランキン...
ご存知のとおり、ウェブサイトの最適化のプロセスには、ウェブサイトのキーワード密度の把握、ウェブサイト...
zjiは3月に米国データセンターに200Gの高防御サーバーを開設し、3つのネットワークに直接接続して...
[[278068]]序文サイト信頼性エンジニアリング (SRE) と DevOps は現在非常に人気...
7月29日〜30日、2020 Trusted Cloud Conferenceがオンラインで開催され...
今年のSEO業界の変化に少し不安を感じており、その気持ちを表明せずにはいられません。インターネット界...
Baidu が外部リンクを公開して以来、多くのウェブサイトの外部リンクがインデックスされた後に削除さ...
vpsget についてはよく知りません。ドメイン名は 2009 年に登録されました。ASN を見ると...
今日は、誰もが毎日関わっているかもしれない大きなビジネス、食品と飲料の新しい全国的なトレンドについて...
Flarum は、エレガントで軽量 (100K 以下) な PHP フォーラム プログラムとして、私...
crazydomains.com.au がドメイン名のプロモーションを再開しました。最も魅力的なもの...