После того, как мы объяснили четыре алгоритма распределенного управления кластером в предыдущем выпуске, давайте представим наиболее часто используемые алгоритмы распределенного управления. Но для того, чтобы помочь вам лучше понять алгоритм плота, давайте начнем с простого примера!
Если класс (член: последователь) хочет избрать лидера класса (лидера), в начале никто не вызывается добровольцами, а по истечении определенного периода времени добровольно выступают три члена [кандидат (A, B, C)], желающие как монитор (вождь), но все отлично, так кто прав? Каждый из A, B и C приносит таймер обратного отсчета со случайным временем.После окончания обратного отсчета этот человек (предположим, A) пойдет собирать и спрашивать мнение других людей о нем, то есть может ли он быть избран наблюдателем? Если он наберет достаточно голосов, то его, естественно, повысят до монитора. Если А отозван с должности наблюдателя из-за нарушения закона и дисциплины, другие последователи, а также кандидат предыдущего выпуска, все еще могут продолжать претендовать на должность наблюдателя и продолжать борьбу за лидера. Что касается упомянутой ниже копии журнала, то в этом примере можно понять, что учитель математики (клиент) просит монитора подсчитать мнения и предложения на уроке математики.Монитор получает информацию от учителя и передает эту информацию другим. По прошествии некоторого времени Некоторые люди оставляют отзывы, монитор засчитает это в свою статистику и передаст это мнение другим подписчикам.По прошествии определенного периода времени, если он получит отзывы от большинства людей (фолловеров), то лидер будет обстоятельно изложите свое мнение о уроке математики Статистика и обратная связь с учителем математики (клиентом).Что ж, простой для понимания пример окончен, давайте по-настоящему разберемся в алгоритме Raft!
Алгоритм консенсуса Raft также известен как алгоритм распределенного консенсуса.Последовательность относится к согласованности данных.Данные во всей распределенной системе согласованы, и также можно понять, что значения данных в нескольких узлах согласованы. Его предшественником является алгоритм Paxos.Алгоритм Paxos представляет собой алгоритм распределенного выбора: то есть путем непрерывных выборов в группе сообщений получатели или исполнители каждого сообщения могут достичь согласованности данных и выполнять их в согласованном порядке сообщений. Алгоритм Paxos позволяет каждому клиенту (клиенту) отправлять инструкции на сервер, не влияя друг на друга, и заставляет данные достигать консенсуса в соответствии с методом выбора.В случае отклонения выбор будет повторен с новым порядковым номером, и так на, чтобы выбрать цель распознанной последовательности. Хоть он и высокоэффективен, в нем все же есть ложка дегтя, а алгоритм Raft — более оптимизированный и понятный алгоритм на его основе.
Алгоритм Raft можно понимать как демократические выборы в целом, а лидер избирается из избирателей.Основная работа алгоритма Raft состоит в том, чтобы разложить проблему такого лидера на две подзадачи избрания и репликации состояния. Процесс выборов понять нетрудно, так что же такое репликация состояния? Короче говоря, репликация состояния — это репликация журнала, цель которой — убедиться, что вся система все еще может обеспечить нормальную работу существующих данных после возникновения проблемы на узле после избрания мастера. Каждый узел имеет три состояния, а именно лидер, кандидат и ведомый, которые могут быть преобразованы друг в друга. Среди них лидер отвечает за выдачу предложений и узел президента; кандидат, как кандидат, отвечает за конкуренцию за лидера; последователь отвечает за объединение предложений, выдвинутых лидером. Две подзадачи кратко описаны ниже.
(1) Процесс выборов:При запуске сервера все узлы запускаются как ведомые, и у каждого ведомого есть таймер.В течение определенного периода времени, если в кластере нет лидера, ведомый объявит, что присоединяется к выборам лидера с кандидатом (инициируя выборы лидера) выборы) и отправлять соответствующие сообщения другим узлам для голосования. получить голоса от большинства узлов. Кандидат будет повышен до лидера. В случае сбоя лидера в процессе работы системы, когда соответствующие узлы не могут получить сообщение, отправленное лидером в течение определенного временного интервала, другие ведомые присоединяются к процессу выбора лидера и соревнуются за следующего лидера. Стоит отметить, что при одновременном избрании двух кандидатов в лидеры и получении одинакового количества голосов информация о голосовании будет повторно отправлена и проведен новый тур выборов, что гарантирует отсутствие конфликта после запрос на голосование отправляется повторно. Конкретный процесс можно увидеть на следующих двух рисунках для облегчения понимания.
(2) Процесс копирования:После того, как лидер создан с помощью описанного выше процесса выбора, конкретные шаги процесса репликации журнала заключаются в следующем. (1) Лидер отвечает за получение запросов предложений от клиентов и запись данных в локальные журналы. (2) Содержание предложения будет включено в запрос, отправленный Лидером; (3) Последователь отвечает на запрос Лидера после получения запроса; (4) Получив ответ от большинства последователей, лидер подтверждает предложение, записывает его в свою память и отвечает клиенту; (5) В случае возникновения проблемы лидер теряется, и клиент не может получить его информацию, через определенный промежуток времени будет переизбран новый лидер, который будет управлять и руководить всем кластером.
Вышеизложенное является кратким введением в алгоритм распределенного управления, алгоритм консенсуса Raft, Я надеюсь, что каждый может иметь определенную глубину понимания.
- End -
Благодаря быстрому развитию технологий Amu Lab будет идти в ногу с темпами развития технологий и продолжать рекомендовать всем новейшие технологии и оборудование в индустрии робототехники. Наблюдение за тем, как студенты, прошедшие обучение у нас, делают рывки в технологиях, является величайшей ценностью нашего обучения. Если вы работаете в индустрии роботов, обратите внимание на нашу публичную учетную запись, мы продолжим публиковать самую ценную информацию и технологии в индустрии роботов.
Amu Lab стремится к обучению и интеллектуальному оборудованию передовых ИТ-технологий, делая исследования и разработки роботов более эффективными!