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

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

推薦する

quickclickhosting-$2.99/256m/20g ハードディスク/500m 無制限/480g DDOS 保護

quickclickhosting も比較的新しいホスティングプロバイダーです。公式サービスはたくさ...

Baidu が www 付きのホームページではなく www なしのホームページを最初に掲載する理由の分析

みなさんこんにちは。私は SEO 初心者です。最近忙しくて、長い間 SEO の知識を皆さんと共有して...

夫婦がスマート教育ウェブサイト「Lynda」を開設し、1年で7000万ドルを稼いだ

1990年代に夫婦がウェブサイトを開設しました。当初は技術指導ビデオを提供するのみでしたが、その後、...

profitserver: ロシアとシンガポールを含む 8 つのデータセンターの VPS が 30% オフ、トラフィック無制限 + Windows システム付き

ITC ホールディングス傘下のロシアのホスティング ブランド Profitserver は、成功裏に...

テンセントと百度の戦い、「ミニプログラム」が勝敗を分けるか?

わずか1年余りで、to Bは中国のインターネットで人気のトレンドになりました。 3月末、馬化騰氏はI...

Vps.Net - 50% オフ (最大割引)

UK2傘下の有名なクラウドホスティングサービスプロバイダーであるVPS.NETは、現在最初の3か月間...

世界のハイパースケール設備投資が過去最高を記録 クラウドコンピューティングは大規模ビジネスに

米国の市場調査会社シナジーリサーチが8月28日に発表した最新統計によると、 2018年上半期における...

湖南衡陽あなたのクラスのFacebookグループコントロールマーケティング収益化、ここに秘密があります

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

itldcはどうですか? Chicago VPSの実際のテスト結果を共有します!

itldcはどうですか? itldc Chicago VPS はいかがでしょうか?シカゴは米国中東部...

モバイルアプリ市場は2016年に448億ドルに達し、ゲームが82%を占めた。

世界的な市場調査会社Newzooは10月に初の世界モバイル市場レポートを発表した。レポートには、世界...

手数料を一括で凍結!タオバオの個人顧客は終わりか?

ちょうど11月が過ぎ、多くのタオバオの友達は大金を稼いだかもしれませんが、その後、彼らは泣き出しまし...

クラウドネイティブ時代を1万語で解説、K8sコンテナプラットフォームのLB(Nginx)負荷分散システムを0から1に構築する方法

クラウドネイティブ時代において、Kubernetes をベースとしたコンテナ オーケストレーション ...

電子商取引トラフィックの進化の歴史

「双十一」は13年目に入り、ほぼすべての電子商取引プラットフォームが準備を進めているが、李佳琦と魏亜...

Yuntu Teng、業界のクラウドレイアウトを加速するためにB+ラウンドの資金調達を完了

最近、国内のエンタープライズレベルのクラウドコンピューティングソフトウェアメーカーである北京雲図科技...