序文ロックとロックの再入を理解した後、理解すべき最も重要なことは、分散シナリオまたはマルチスレッドの同時ロックでロックをどのように処理するかということです。 1同時ロックまずは結果を見てみましょう。複数のスレッドが /locks/lock_01 をロックしたときに、後で新しい一時ノードが作成されました。 これはロックメソッドCreateBuilderImpl#pathInForegroundで導入されました。 ここでは、/locks/lock_01 パスがすでに存在すると判断され、新しい一時シーケンス ノードが直接作成されます。 ロックが正常に取得されたかどうかの実際の判断は、LockInternals#attemptLock メソッド内の internalLockLoop メソッドで行われます。 結果のロックと監視internalLockLoop メソッドの主な機能は、ロックの結果を決定し、ロックの取得が失敗した場合に他のノードを監視することです。
ロックを取得するためのコードはStandardLockInternalsDriver#getsTheLockにあります。 この部分は、getSortedChildrenですべてのノードがソートされているので、メソッドのリストが最小のノードであるかどうかを判断するためのものです。 InterProcessMutex が初期化されるときに、maxLeases は 1 に指定されます。 ここでの最終結果は、それが最小であるかどうかを判断し、最小でない場合は、pathToWatch を前のノードに設定することです。 前のノードを監視するだけで群集効果を回避できます。 なぜ待つ必要があるのでしょうか? これは、前のノードが解放されたかどうかを監視する監視メカニズムがここにあるため、無効なスピンを防ぐためです。 これは ZooKeeper の Watcher 監視メカニズムです。ノードが解放されると、コールバックが行われ、Java の notificationAll メソッドを使用してすべての待機スレッドに通知されます。その後、ここでの while try は実行を継続し、ロックが取得されたかどうかなどを再確認します。 2 まとめこの記事では、主に、同時実行シナリオにおける ZooKeeper に基づく分散ロック フレームワークである Curator のロック競合問題について紹介します。 理解すべき重要なポイントは次のとおりです。
この記事はWeChatの公開アカウント「Programmer Xiaohang」から転載したもので、以下のQRコードからフォローできます。この記事を転載する場合は、プログラマーXiaohangの公式アカウントまでご連絡ください。 |
>>: クラウドネイティブ:家を購入してからオープンするまでのストーリー
オンライン採用は2000年頃に国内市場に初めて登場しました。10年以上の開発を経て、オンライン採用は...
Pacificrack は 4 月に安価な VPS プロモーションを実施しており、小規模な Web ...
しかし、現在、ほとんどの企業やウェブサイト構築の専門家は、「入札」は高すぎるし、まさに底なし沼だと不...
導入:この記事はあくまでも個人的な意見を述べたものであり、あらゆるコメントを歓迎します。 SEO、ウ...
bigbirdweb.com の特別プロモーション VPS をご紹介します。同社は 年に設立され、以...
SaaS が 2021 年に入ると、風が再び強まります。資本市場の熱狂はそれ自体が物語っているが、そ...
ロシアのサーバーは著作権などの管理が緩い場合が多く、特にロシアはヨーロッパとの接続に効果的なので、対...
2019 年 2 月 22 日、greencloudvps (Green Cloud、Green C...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますインターネ...
多くのウェブマスターは、キーワードの変化が速すぎて不安定になることを懸念しています。苦労して最適化し...
南方日報(記者/趙炳慧)スマートフォンの急速な発展により、医療電子商取引はそこに潜むチャンスに気づき...
6 月 28 日、暑い夏の日に北京で 2018 Container Day (2018 Ranche...
このような質問を知りたいです。検索エンジン最適化業者として、主にどのような企業やクライアントにサービ...
今週、Google は Compute Engine クラウド コンピューティングの商用提供を発表し...
周知のとおり、Baidu の中国語単語分割技術は Google よりも優れています。以下はインターネ...