ZooKeeper 分散ロック キュレーター ソース コード 2: 再入可能ロックの繰り返しロックとロック解除

ZooKeeper 分散ロック キュレーター ソース コード 2: 再入可能ロックの繰り返しロックとロック解除

[[410320]]

序文

ロックロジックが導入されました。では、スレッドの繰り返しロックにはどのように対処すればよいのでしょうか?

1. 再入室をロックする

前のセクションでは、ロックのプロセスを確認し、次に internalLock メソッドをもう一度見てみましょう。

ロックが正常に取得されると、現在のスレッドはConcurrentMapであるthreadDataに配置されます。

ロックが再入力された場合は、前の部分 lockData != null で直接停止し、lockData.lockCount.incrementAndGet(); を実行します。

lockCount の増加はロックの再入力を示します。

ここに注意してください! Curator のロック再入機能は Java コードで実装されています。

2. ロック解除

ロックを解除する必要がある場合は、lock.release() を呼び出して解除するだけです。具体的にはどのようにリリースされるのでしょうか?

主に 2 つの部分に分かれています。

  1. threadData 内の現在のスレッドのロックの数を減らします。
  2. ロックの数が 0 より大きい場合は、まだ再入時間が残っていることを意味するので、直接戻ります。
  3. ロックの数が 0 の場合、releaseLock はロックを解除し、threadData 内の現在のスレッド キーを削除します。

releaseLock メソッドには、リスナーを削除して一時シーケンス ノードを削除するという複雑なロジックはあまりありません。つまり、/locks/lock_01/_c_e855d232-c636-4241-bf8e-f047939a5833-lock-0000000001 です。

3. まとめ

ZooKeeper の InterProcessMutex ロックは、Java コード内の lockCount を維持し、再入可能かどうかを判断します。

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

<<:  TektonとArgo CDを組み合わせてGitOpsを実装する

>>:  クラウド コンピューティングに隠された 10 の秘密

推薦する

男性は間違った業界に投資することを恐れています。中小規模のウェブサイトのブランドの夢は、ポジショニングから始まります。

Baidu の「検索エンジン最適化ガイド」のバージョン 1.0 であろうと 2.0 であろうと、その...

企業ウェブサイトの間違った最適化方法: あなたはそれを実行していませんか?

血なまぐさい、痛い教訓です。6月28日、Baiduはインターネット上の低品質コンテンツを持つウェブサ...

Baidu アルゴリズム調整後の企業向け Web サイト構築のアイデア

草の根ウェブマスターにとって、今年はまたも悲痛な年です。草の根ウェブマスターにとって、今年はまたも辛...

エンタープライズSEMプロモーションの効果に影響を与える6つの要素

SEM は Search Engine Marketing の略で、中国語で検索エンジン マーケティ...

Xenspec についてはどうですか?米国西海岸サンノゼデータセンターのVPSレビュー

米国サンノゼデータセンターのXenspecのVPSは、安価なだけでなく、トラフィック制限もありません...

中国は4年後に世界最大のクラウドコンピューティング市場になるでしょうか?

現在、中国のクラウド コンピューティング市場は、米国に次いですでに世界第 2 位の規模となっています...

Netflixが人気になった理由

要約ビュー「ハウス・オブ・カード」の瞬く間に成功したことでNetflixは大人気となったが、想像もで...

クラウドネイティブ開発のための 12 の Kubernetes 開発ツール

Kubernetes の便利なツールの共有を継続し、この記事では 12 個の Kubernetes ...

Woothosting - 19 USD/年/200GB ハードドライブ/無制限の再販ホスティング

Woothosting は、サブアカウント、サブ配布アカウントの無制限の開設をサポートし、PHP バ...

幸運の裏返し:百度の大地震は、格下げされたウェブサイトで多くの議論を引き起こした

「百度地震」は6月22日に始まった。百度は「今回のアップグレードは検索トラフィックの5%にしか影響し...

バイトダンスのTo B戦争

著者はTo BでByteDanceの具体的な行動、レイアウトロジック、業界への影響について説明してい...

ウェブサイトの重量が軽いことを示す兆候

ウェブサイトの重みの重要性は自明です。私たちが最も望んでいるのは、良いランキングを獲得することです。...

検索エンジンによるページインデックスの原理と方法を分析する

検索エンジンに含まれるページは、実際にはインターネット上のデータ収集です。これは検索エンジンの最も基...

古いサイトから新しいサイトへの 301 リダイレクトを使用できますか?

SEO 最適化において、301 リダイレクトは頻繁に使用される機能です。その主な目的は、ウェブサイト...

dedipath: 新年プロモーション、85 ドル、1Gbps 無制限トラフィック、2*E5-2620v2、ロサンゼルス/ニューヨーク

dedipath は、1Gbps の帯域幅、無制限のトラフィック、ロサンゼルスとニューヨークの 2 ...