Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 9508|Відповідь: 2

Реалізація розподіленого замка Zookeeper

[Копіювати посилання]
Опубліковано 20.03.2018 16:23:52 | | | |
Конструкція замків

  Ознайомтеся з ідеєю реалізації замків:
1. Почніть зі створення каталогу у вигляді блокування (znode), який зазвичай використовується для опису заблокованої сутності, що називається :/lock_node
2. Клієнт, який хоче отримати блокування, створює znode у каталозі блокування як дочірній вузол lock/lock_node, а тип вузла — Ordered Temporary Node (EPHEMERAL_SEQUENTIAL);
Наприклад, два клієнти створюють znode — /lock_node/lock-1 і /lock_node/lock-2
3. Поточний клієнт викликає getChildren(/lock_node), щоб отримати всі дочірні вузли з каталогу блокування, без встановлення watch, а потім отримати братські вузли, менші за нього (створені на кроці 2).
4. Вузол, який менший за нього на кроці 3, не існує , і найменший вузол збігається з тим, що створений на кроці 2, що означає, що поточний номер послідовності клієнта найменший, отримайте блокування і кінець.
5. Клієнт контролює стан впорядкованого тимчасового вузла, який є наступним за меншістю після нього
6. Якщо змінюється статус контрольованого підвузла, перейдіть до кроку 3 і продовжуйте наступні операції до завершення гонки блокування.     

Автор не буде вводити блокування розподілу тут, давайте розглянемо блок-схему всього дизайну коду наступним чином





Попередній:Детальне пояснення AutoResetEvent у .net/c#
Наступний:Щодо проблеми, що Android 7.0 не може виконувати https-пакетний захоплення
 Орендодавець| Опубліковано 20.03.2018 16:49:35 |
Розподілені кроки замків від Zookeeper:
1. Zookeeper — це вузол із вузлами, подібний до файлового каталогу, тому ми абстрагуємо блокування у каталог, zookeeper має вузол із EPHEMERAL_SEQUENTIAL типів, кілька потоків, і коли вузол створюється zookeeper, він допомагає нам впорядкувати порядок створення, щоб каталоги під цим вузлом були послідовними.
2. Отримати найменший вузол поточного каталогу, визначити, чи є найменший вузол поточним, чи означає це, що блокування успішне, чи це не проблема з отриманням блокування.
3. Коли блокування не спрацьовує, щоб уникнути ефекту рою, потрібно отримати попередній вузол поточного вузла і потім слухати вузол.
4. Коли ви це робите, коли ви знімаєте блокування, ви також повідомляєте наступний вузол.
 Орендодавець| Опубліковано 20.03.2018 16:54:46 |
Дізнайтеся про статус доглядача зоопарку та типи заходів заздалегідь.


Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com