Redisson 分散ロック ソースコード 2: ウォッチドッグ

Redisson 分散ロック ソースコード 2: ウォッチドッグ

[[407749]]

序文

Redisson といえば、ウォッチドッグ メカニズムは誰にとっても非常に馴染み深いものです。

この記事では、ロックが正常に追加された後にウォッチドッグがどのように実装されるかについて説明します。

1 ロックに成功しました

前回の記事では、再入可能ロックのロジックを紹介しましたが、その中で RedissonLock#tryAcquireAsync メソッドは非同期ロックのロジックです。

このメソッドのパラメータを確認してみましょう。

  1. 待機時間: -1;
  2. リースタイム: ロック時にロック時間が指定されていない場合は -1、指定されている場合は指定された時間。
  3. 単位:null;
  4. threadId: 現在のスレッド ID。

tryLockInnerAsync は以前に導入されました。

ロックが成功すると null が返されます。ロックが失敗した場合は、現在のロックの残り時間が返されます。

したがって、このピースは赤いボックスでマークされた部分に入ります。

リースタイムはロック時間で、デフォルトでは指定されていないため、今日のトピックであるウォッチドッグである scheduleExpirationRenewal メソッドに入ります。

これまでのところ、次のような結論を導き出すことができます。

Redisson ウォッチドッグがロック時間を指定すると、ロック時間は自動的に更新されません。

2. ウォッチドッグ

ウォッチドッグの重要なロジックの一部は、renewExpiration メソッドにあります。

  1. 遅延スケジュール、遅延時間: internalLockLeaseTime / 3、つまり、この TimerTask は約 10 秒後にスケジュールされます。
  2. 非同期更新: すべてのロジックは renewExpirationAsync にあります。
  3. 再帰呼び出し: リースの更新が成功すると、継続的なリース更新の目的を達成するために renewExpiration 自体が再度呼び出されます。
  4. もちろん、リースを無期限に更新することはできませんので、途中で更新を中断するための何らかの判断ロジックがあります。

リース更新ロジック

これも Lua スクリプトであり、以前の Redis キーの時間を直接リセットします。

更新後、約10秒後にロック時間が30秒にリセットされます。

3 まとめ

ここまででウォッチドッグの紹介は終わりです。簡単に内容をまとめてみましょう。

ウォッチドッグは、ロック タイムアウトが指定されていない場合にのみ使用されます。

ウォッチドッグのデフォルトの更新時間は約 10 秒、internalLockLeaseTime / 3 です。

Config を通じてウォッチドッグ時間を均一に設定できます。lockWatchdogTimeout パラメータを設定するだけです。

最後に、写真を使ってまとめてみましょう。

この記事はWeChatの公開アカウント「Programmer Xiaohang」から転載したもので、以下のQRコードからフォローできます。この記事を転載する場合は、プログラマーXiaohangの公式アカウントまでご連絡ください。

<<:  PolarDB-X 2.0: 透過的な分散データベースの使用感

>>:  クラウド移行で大きなミスを避ける方法

推薦する

owocloud: 深セン-香港 IEPL 専用回線向け natVPS、レイテンシ 2 ミリ秒、帯域幅 200M、月額 84.5 元から

Owocloud(深圳孟林科技有限公司)は現在、「深圳-香港IEPL専用線」シリーズのNAT VPS...

クラウドネイティブと自動化が次世代の WLAN に与える影響

クラウド ネイティブの原則を WLAN に適用する理由は何ですか?非常に効果的であることが証明されて...

ビットコインとWe-mediaは2013年のインターネット業界の流行語トップ10にランクイン

今年も年末となり、様々な業界の見直しが始まりました。インターネット業界にとって、1年間の変化は驚くべ...

海外で利用率の高いSEOツール07選

2007年に海外で最も利用率の高いSEOツール1 SEO分析ツールのトップ10を挙げる2 バックリン...

Alibaba Cloudは、コミュニティとクラウドネイティブデータベースエコシステムを構築するためにPolarDBのオープンソースリリースを発表

5月29日、アリババクラウド開発者会議において、アリババクラウドはクラウドネイティブデータベース機能...

SEO 従事者が新年以降必ず直面する 4 つの危険な時期

新年がゆっくりと過ぎ、私たちは通常の軌道に戻りました。自宅で休暇を取っている間、私はSEO業界につい...

Hujiang.comの副社長がデジタル出版分野におけるHujiang.comの鮮明な事例を紹介

12月15日、internet2share.comは上海でデジタル出版の今後の発展の道についてのサロ...

新しいテクノロジーが次々と登場しています。次世代のクラウド コンピューティングのブレークスルーはどこにあるのでしょうか?

今はIT技術が急速に発展している時代です。ハードウェア インフラストラクチャの継続的なアップグレード...

panamaserver: パナマの VPS+ サーバー、著作権を無視し、苦情に抵抗する

パナマのホスティングプロバイダー panamaserver は、「ベアメタルサーバー」がオンラインで...

ウェブサイト上のリンク切れを見つけて削除するにはどうすればいいですか?

月収10万元の起業の夢を実現するミニプログラム起業支援プランBaidu Webmaster Plat...

ホストオンはどうですか? Hosteons 無制限帯域幅 VPS シンプルレビュー

最近、私は新しい VPS 業者である Hosteons を発見しました。これはシンガポールに拠点を置...

共同購入ウェブサイトは2011年にジェットコースターのような急激な変化を経験し、その数は5,000から3,897に減少した。

上海の記者江培芳中国の共同購入ウェブサイト業界はジェットコースターのような浮き沈みを繰り返しており、...

お客様、SEO アウトソーシングの準備はできていますか?

顧客が初めて王世凡と協力関係を築くと、王世凡は顧客に何度も「本当にウェブサイトを最適化しますか?」「...

テンセントはオープンソースのロードマップ全体を完全に公開

6月25日、Cloud Native Computing Foundation (CNCF)が主催す...

Pacificrack: ロサンゼルスに最適化されたライン VPS、年間 7.25 ドルから、512 MB のメモリ/10 g SSD/500 g の帯域幅

Pacificrack は、年間支払額がわずか 7.25 ドルの 3 つの新しい安価な VPS モデ...