Архитектура и принципы Nacos — Самостоятельно разработанный протокол дистрибутива (распределенный протокол AP)

вставьте сюда описание изображения


фон

Протокол Distro — это распределенный протокол точки доступа, разработанный сообществом Nacos . Это распределенный протокол, предназначенный для временных экземпляров. Он гарантирует, что вся система обработки временных экземпляров сможет нормально работать после выхода из строя некоторых узлов Nacos.

В качестве встроенного протокола для приложений промежуточного программного обеспечения с отслеживанием состояния Distro обеспечивает унифицированную координацию и хранение массивных запросов на регистрацию каждым узлом Nacos.


дизайн-мышление

Основные идеи дизайна протокола Distro следующие:

  • Все узлы одинаковы и могут обрабатывать запросы на запись при синхронизации новых данных с другими узлами.

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

  • Каждый узел самостоятельно обрабатывает запросы на чтение и своевременно отправляет ответы локально.


вставьте сюда описание изображения

Как работает протокол дистрибутива

Следующие разделы будут разделены на несколько сценариев, чтобы представить принцип работы протокола Distro.

инициализация данных

Недавно добавленный узел дистрибутива будет извлекать весь объем данных. Конкретная операция заключается в опросе всех узлов дистрибутива и извлечении полного объема данных путем отправки запросов на другие машины.

вставьте сюда описание изображения

После завершения операции полного извлечения все текущие зарегистрированные непостоянные данные экземпляра сохраняются на каждой машине Nacos.


Валидация данных

После запуска кластера дистрибутива между машинами периодически отправляются пульсации. Информация о пульсе — это в основном метаданные всех данных на каждой машине (причина, по которой используются метаданные, заключается в том, чтобы гарантировать, что величина передачи данных в сети поддерживается на низком уровне). Этот вид проверки данных будет выполняться в форме сердцебиения, то есть каждая машина будет инициировать запрос проверки данных на другие машины через фиксированный интервал времени.

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


операция записи

Для кластера Distro, который был запущен в процессе операции записи, инициированной клиентом, когда запрос на запись для зарегистрированного непостоянного экземпляра попадает на определенный сервер Nacos, блок-схема обработки кластера Distro выглядит следующим образом.

вставьте сюда описание изображения

Весь шаг состоит из нескольких частей (сверху вниз на рисунке):

  • Предыдущий фильтр перехватывает запрос, вычисляет ответственный узел дистрибутива, которому он принадлежит, в соответствии с IP-адресом и информацией о порте, содержащейся в запросе, и перенаправляет запрос ответственному узлу дистрибутива, которому он принадлежит.
  • Контроллер на ответственном узле анализирует запрос на запись.
  • Протокол дистрибутива регулярно выполняет задачу синхронизации для синхронизации всей информации экземпляра, за которую отвечает машина, с другими узлами.

операция чтения

Поскольку полный объем данных хранится на каждой машине, при каждой операции чтения машина с дистрибутивом будет напрямую извлекать данные из локального. Быстрый ответ

вставьте сюда описание изображения

Этот механизм гарантирует, что протокол Distro может использоваться в качестве протокола AP для своевременного ответа на операции чтения.

В случае сетевого раздела все операции чтения также могут вернуться нормально; при восстановлении сети каждый узел дистрибутива будет объединяться и восстанавливать данные каждого фрагмента данных.


краткое содержание

Протокол Distro — это протокол согласованности, разработанный Nacos для временных данных экземпляра . Его данные хранятся в кеше, и при запуске будет выполняться полная синхронизация данных, а также периодически выполняться проверка данных .

Согласно идее дизайна протокола Distro, каждый узел Distro может получать запросы на чтение и запись . Все сценарии запросов протокола Distro в основном делятся на три ситуации:

  1. Когда узел получает запрос на запись, принадлежащий экземпляру, за который отвечает узел, напишите напрямую.

  2. Когда узел получает запрос на запись , который не принадлежит экземпляру, за который отвечает узел, он будет маршрутизироваться внутри кластера и перенаправляться на соответствующий узел для завершения чтения и записи.

  3. Когда узел получает любой запрос на чтение, он напрямую запрашивает и возвращает локально (поскольку все экземпляры синхронизируются с каждой машиной).

Протокол Distro, как встроенный протокол согласованности временных экземпляров Nacos , гарантирует, что в распределенной среде статус служебной информации на каждом узле может быть своевременно уведомлен другими узлами , и может поддерживать хранение и хранение сотен тысяч экземпляров службы.
вставьте сюда описание изображения

Acho que você gosta

Origin blog.csdn.net/yangshangwei/article/details/131114074
Recomendado
Clasificación