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: 透過的な分散データベースの使用感

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

推薦する

外部リンク構築戦略の5つの側面

外部リンク構築の戦略原則は比較的マクロです。いわゆる戦略的方向性とは、外部リンク構築のプロセスにおい...

メールマーケティングプロモーションのヒント

Eメールダイレクトマーケティング(EDM)は、企業が特定のソフトウェア技術とインターネットをキャリア...

JVM メモリ オーバーフローの 8 つの原因と解決策

[[275294]] 1. Javaヒープスペース頻度: 5 つ星原因Javaヒープにオブジェクトを...

クラウドコンピューティングのコンプライアンスを確保する方法

クラウド コンピューティングのコンプライアンスにより、クラウド コンピューティング サービスがユーザ...

老ウェブマスターがTencent Weiboを使って外部リンクを作成する方法を教える

Weiboは現在、インターネット上でますます人気が高まっています。多くの一般人に愛されているだけでな...

電子商取引サイトが効果的なトラフィックを獲得するための主な方法

インターネットで商品を販売するには、まずユーザーが必要です。電子商取引のウェブサイトの場合、トラフィ...

EDMマーケティングとは?EDMメールマーケティングの3つのコアテクニック

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスEDM マーケティングと...

注意深い!クラウドコンピューティングの8つの隠れたコストに注意

ここでは、IT 管理者が不意を突かれるクラウド コンピューティングの 8 つの側面について説明します...

国家食品医薬品局は、インターネット上の偽薬ウェブサイト82件を閉鎖する特別キャンペーンを開始した。

国家食品医薬品局は昨年、公衆の薬物使用の安全を確保するため、「インターネット上の薬物情報サービスと取...

モノのインターネットにおけるフォグコンピューティングの応用

フォグ コンピューティングとは、分散型コンピューティング構造を指します。データやアプリケーションなど...

2018年風に乗る会議がセーリングの首都に登場——青島が中小企業のスマートマーケティングを支援

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています7月6日、...

Maihao.comは、米国の投資機関から500万ドルのVC投資を受けたと発表した。

マイハオドットコムの洪妙龍最高経営責任者(CEO)は6日、約1カ月の交渉を経て、米投資機関から500...

WeChatパブリックアカウントナビゲーションウェブサイトは、トラフィックの入り口を作成するために多額の費用を費やしています

3月27日の報道によると、WeChatの公開アカウント数の増加は起業家が狙う新たな市場になりつつある...

alpharacks - $10/年/256M メモリ/512M スワップ/25G ハードドライブ/500g データ転送/ロサンゼルス

Alpharacks、年末プロモーションが始まりました。256Mメモリ、512M、1G、2Gの特別価...