導入 以前、分散ロックを実装するために Redis を使用したときは、単一の Redis インスタンスに基づいていたため、Redis 自体に単一障害点がありました。 Redis の公式ドキュメントでは、分散 Redis で分散ロックを実装するために「合理的だと思われる」アルゴリズム、Redlock が紹介されています。 Martin Kleppmann が Redlock を分析した記事を書きました。その後、redis の作者が反論記事をここに書きました。来て。 Redlock 実装ライブラリ
背後にあるアルゴリズムは同じですが、「いいね!」の数は確かに印象的です。 シングルポイントRedisロック まず、シングルポイント Redis ロックがどのように実装されているかを簡単に確認してみましょう。 ロックを取得
クライアント A は Redis に特定のキーと値のペアを設定し、タイムアウトを設定します (デッドロックを回避するため)。他のクライアントがキーにアクセスすると、まずキーがすでに存在するかどうか、その値が my_random_value と等しいかどうかを確認します。すでに存在する場合は待機します。それ以外の場合は、ビジネス コードを正常に取得して実行します。 resource_name と my_random_value はすべてのクライアントに認識され、共有されます。 ロックを解除
キーによって取得された対応する値を比較して、それらが等しいかどうかを確認します。等しい場合は削除(解放)し、そうでない場合は失敗を返します。 以前に記事を書いたことがあります。 シングルポイントRedisロックの欠点 この欠陥は実は非常に明白です。 Redis インスタンスが 1 つしか存在せず、それが失敗した場合、それに依存するすべてのサービスも失敗します。明らかに大規模なアプリケーションには適していません。 シンプルなRedisマスタースレーブアーキテクチャで発生する問題 単一障害点を回避するために、マスター 1 つとスレーブ 1 つで構成される Redis のマスター/スレーブ アーキテクチャを作成します。以下のような問題が発生します。使用シナリオは以下のとおりです。
レッドロックアルゴリズム N 個 (5 個と仮定) の Redis マスター インスタンスがあり、すべてのノードが互いに独立しており、業務システムも単純な呼び出しであり、メッセージの再送信などの他の補助システムは存在しないと仮定します。アルゴリズムをシミュレートしてみましょう: 1. クライアントはサーバーの現在の時刻 t0 をミリ秒単位で取得します。 2. 同じキーと値を使用して、5 つのインスタンスから順番にロックを取得します。ロックを取得する際、クライアントはビジネス ロックに必要な期間よりもはるかに短いタイムアウト期間を設定します。たとえば、ロックに 10 秒かかる場合、タイムアウトは 5 ~ 50 ミリ秒に設定できます。これにより、Redis インスタンス自体がクラッシュしたにもかかわらず、クライアントがまだロックを取得しようとしている状況を回避できます。タイムアウト後、次のノードに直接ジャンプします。 3. クライアントは、現在の時刻 (t1) から t0 を減算して、ロックを取得するために必要な時間 t2 (= t1-t0) を計算します。 t2 がロックのビジネス有効期間 (つまり、2 番目のステップでは 10 秒) 未満であり、クライアントが少なくとも 3 つの (5/2+1) ステーションでロックを取得した場合にのみ、ロック取得が成功したと見なすことができます。 4. ロックが取得された場合、ロックのサービス有効期間は 10s-t2 です。 5. クライアントがロックを取得できない場合は、N/2+1 以上のインスタンスのロックを取得していないか、有効期間 (10s-t2) が負である可能性があります。そのノードでロックが取得されていない場合でも、ロックを解除しようとします。 ロックの解除 解放は比較的簡単で、すべてのインスタンス上の対応するキーを削除するだけです。記事が気に入ったら、ぜひフォローしてください。読んでいただきありがとうございます! |
<<: クラウドコンピューティング、仮想化、コンテナ化について
>>: 中国企業はITの複雑性という課題に直面している。企業の46%が自社のIT環境が2年前よりも複雑になっていると考えている。
クラウド コンピューティングの変革の瞬間が到来しました。それは、成熟した市場構造、広い将来の空間、テ...
将来的には、エッジ コンピューティングと人工知能やモノのインターネットなどの新興テクノロジーの融合が...
ガートナーの統計によると、世界のインフラストラクチャ・アズ・ア・サービス(IaaS)市場は2018年...
急速に進化するテクノロジー環境において、企業はコンピューティングのニーズを満たすためにクラウドとハイ...
おそらく多くのウェブマスターは、「スナップショット独占」が何を意味するのかまだよくわかっていないでし...
私たち中国人の多くは自慢するのが好きですが、本当に知識が豊富な人というのは、大抵あまり目立たない人た...
Hotnet の日本 VPS サーバーは東京データセンターにホストされており、cn2 gia + b...
女性は買い物に行き、男性はバッグを持つものだと信じているに違いありません。同様に、多くの人の印象では...
中国聯通、中国移動、さらには中国電信(私は使ったこともないし、理解したこともない!)にしても、通信業...
近年、大量のウェブサイトが格下げされ追い出されており、医療ウェブサイトは今回特に注目されています。こ...
最近、百度を悩ませ、ロビン・リーを眠らせないのは、おそらく神馬検索の立ち上げだろう。全世界5億人のユ...
現在、モバイルアプリのアプリケーションの数は10年前のウェブサイトの数を超え、爆発的に増加し始めてい...
SEO ビジネスについて顧客と話し合うとき、顧客を見分ける能力を持つことは非常に重要です。ある程度の...
最近、Lao Yu はある事例を耳にしました。ある銀行が、業務の中核となる集中型データベースの代わり...
【TechWeb Report】12月24日、WeChatパブリックプラットフォームは最近、より厳格...