序文ロックとロックの再入を理解した後、理解すべき最も重要なことは、分散シナリオまたはマルチスレッドの同時ロックでロックをどのように処理するかということです。 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の公式アカウントまでご連絡ください。 |
>>: クラウドネイティブ:家を購入してからオープンするまでのストーリー
4年間の待機期間を経て、2018年ワールドカップが北京時間11月21日午前0時に、開催国カタールと南...
ホスト キャット グループ管理者の「morgan」がグループ内で、iwstack の再チャージで 1...
近年、国内のクラウドコンピューティング市場は、複数の業界での徹底的な応用の傾向を示しています。特に、...
Weiboの自主メディア企画が本日スタート。フォロワー500万人超の「Big V」は当面応募不可...
阿成氏のブログインタラクティブSEOはオープンしてから12日目を迎えました。この間、彼はテーマのいく...
infinityhosts は 2009 年に設立されたインドの会社です。同社が提供する VPS ホ...
vpscheap は古いユーザーに対して、すべての VPS を 25% 割引するプロモーション オフ...
AWS と Microsoft は、ガートナー社の 2018 年マジック クアドラントのクラウド イ...
北京時間2月24日朝のニュースによると、Wikipediaは発展途上市場のユーザーにWikipedi...
#virmach日本vps# virmachのAMDシリーズVPS-Japan東京データセンターが、...
恒創科技は、国慶節期間中(10月12日まで)に「国慶節セール」を実施します。香港CN2サーバー、香港...
1. WeChatプラットフォームWeChatには6億5000万人のアクティブユーザーがおり、巨大な...
プライベートクラウドとは何ですか?まず、プライベート クラウドとは何かを簡単に見てみましょう。プライ...
百度の最近の暴発により、国内の最適化環境は混乱し、非常に悪化しています。通常、ランキングを獲得するた...
いわゆる状況を利用したマーケティングとは、マーケティング活動において販売の目的を隠し、消費者が好む環...