Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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