Ставьте лайк и читайте еще раз, Java продвинута более чем наполовину
ZooKeeper означает зоопарк. В 2012 году чиновник написал такой интересный «ZooKeeper Way» для ZooKeeper. Неудивительно, что ZooKeeper сейчас так хорошо развивается.
Работники зоопарка преданы животным, находящимся под их опекой, и посетителям, которые их посещают. Они следуют кодексу, известному до сих пор только их сверстникам, который обеспечивает безопасность животных и посетителей.
Привет всем, я брат Нэн.
Будучи лидером в изучении и продвижении Java, я считаю, что вам будет полезно пройти собеседование и получить предложение о работе в той компании, которую вы хотите.
⭐⭐Эта статья включена в《JavaРасширенное руководство по обучению》:https://github.com。。
Интервьюер: Вы знаете соглашение ZAB?
Прежде чем подробно изучать ZooKeeper, брат Нэн считает, что мы должны сначала изучить основную концепцию ZooKeeper. Все действия ZooKeeper сосредоточены вокруг этого ядра. Сказав так много, это протокол ZAB.
Полное английское название протокола ZAB — ZooKeeper Atomic Broadcast. Примерно понять, что он делает, можно через китайское значение: ZooKeeper Atomic Message Broadcast Protocol.
Давайте посмотрим на объяснение атомного радиовещания в Википедии.
В отказоустойчивых распределенных вычислениях атомарная широковещательная рассылка или широковещательная рассылка полного порядка — это широковещательная рассылка, при которой все правильные процессы в многопроцессной системе получают один и тот же набор сообщений в одном и том же порядке (т. Е. Ту же последовательность сообщений).
Так что же такое ZooKeeperтранслировать? Мы знаем, что в кластере ZooKeeper есть сервер-лидер и сервер-последователь.,этотLeaderСервер получает все данные клиентазапрос транзакции,обработка запроса может быть новым узлом ZNode,Вы также можете удалить определенный узел ZNode.
Должны ли отправляться изменения, запрошенные этими транзакциями, и как уведомить другие серверы-последователи о необходимости синхронизации изменений, является основным содержанием, участвующим в трансляции.
Протокол ZAB в основном включает в себя широковещательную рассылку сообщений и режим сбоя. Следуйте за братом Наном, чтобы посмотреть ниже.
Интервьюер: Можете ли вы рассказать мне о выпуске новостей?
ЗАБ-протоколновоститранслировать Похоже на:Двухэтапный процесс подачи。Как следует из названия, окончательное представление транзакции разделено на два этапа.。
Процесс трансляции сообщения выглядит следующим образом:
(1) запрос для клиентов транзакции,Сервер Лидер сгенерирует для него соответствующее Предложение транзакции.,в то же времятранслироватьк остальной части кластераFollowrмашина。этот事务ProposalМы можем понимать это как предложение о сделке.。
(2) После получения предложения транзакции ведомый сервер запишет его на локальный диск в виде журнала транзакций. Если запись прошла успешно, он отправит подтверждение ведущему серверу.
(3) Сервер-лидер будет собирать голоса с других серверов-последователей.,толькополовинаизFollowСервер согласен на этозапрос транзакции,ЧтоLeaderСервер будеттранслироватьодинCommitинформация,Уведомите все последовательные серверы о необходимости фиксации транзакций.
Подводя итог, он разделен на два этапа. Первый этап — выяснить, может ли попытка записи предложения транзакции быть успешной. Второй этап — зафиксировать транзакцию на сервере-лидере и сервере-последователе.
Интервьюер: Есть ли какие-либо недостатки у подачи на втором этапе?
Конечно, двухэтапная передача широковещательного сообщения имеет недостатки.
(1) Если на втором этапе широковещательной рассылки сообщения некоторые последующие серверы не получат сообщение о фиксации транзакции, переданное ведущим сервером, произойдет несогласованность данных.
(2) Одноточечная проблема. Если сервер-лидер выйдет из строя на втором этапе, другие серверы-последователи все равно будут находиться в состоянии блокировки ресурсов последней транзакции.
(3) Проблема синхронной блокировки. При участии в запросе клиентской транзакции другая логика серверов ведущего и ведомого должна быть заблокирована и не начнет выполнение до тех пор, пока не будет завершена предыдущая двухфазная передача.
Интервьюер: А как насчет аварийного режима?
ЗАБ-протокол включает в себя сервер-лидер и сервер-последователь.,Leaderсервер充当了最重要из作用。еслиLeaderсерверкрахприобретенное или потерянное иFollwerсервер之间из联系,Тогда, вероятно, возникнут различные проблемы, упомянутые братом Наном выше во время подчинения на втором этапе.
Разве я не говорил вначале, что протокол ZAB включает в себя широковещательную рассылку сообщений и режим сбоя? Не паникуйте, для этого и нужен аварийный режим.
В общем, режим сбоя выполняет две задачи. Мы помним эти два момента для простоты понимания: один — гарантировать, что Предложение транзакции, отправленное Лидером, отправлено, а другой — отменить Пропущенное Предложение транзакции. .
(1) Чтобы решить проблему, указанную в пункте 1 выше. Сервер-лидер подготовит очередь сообщений предложения для каждого сервера-последователя и отправит через эту очередь предложения по транзакциям, которые не были синхронизированы каждым сервером-последователем. В то же время после сообщения предложения будет добавлено сообщение фиксации, чтобы разрешить ведомому серверу. сервер для фиксации транзакции. Это может решить проблему несогласованности данных, вызванную двухэтапной отправкой.
(2) Чтобы решить проблему, указанную в пункте 2 выше. ZooKeeper разработал старшую 32-битную эпоху для использования в качестве идентификатора ведущего сервера; он разработал низкое 32-битное смещение транзакции ZXID, которое будет использоваться в качестве смещения последней зафиксированной транзакции.
После того, как новый сервер-лидер подключится к сети, новый сервер-лидер будет иметь наибольшее смещение транзакции в кластере. Сервер-лидер сравнит его с ZXID сервера-ведомого, что позволит серверу-ведомому откатить предложение пропущенной транзакции.
добро пожаловатьсосредоточиться на Брат Нэниз公众号:Расширенный компас Java。公众号里有Брат Нэн珍藏整理из大量优秀pdfкниги!
Я Брат Нэн, Нэн — это Нэн. Я нашла ваши интересные комментарии на Get➕Like➕Follow.
Творить непросто, поэтому вы можете ставить лайки, собирать и подписываться, чтобы поддержать его. Ваша поддержка — самая большая мотивация для моего творчества.❤️