Подробное объяснение Redis Sentinel
Подробное объяснение Redis Sentinel

Предисловие:связанныйRedisиз Для получения базовых знаний вы можете обратиться к тому, что я писал ранее.изстатьяЧто вы должны знать о Redis

В предыдущем режиме репликации Redis «главный-подчиненный» в случае выхода из строя ведущего устройства необходимо выбрать нового ведущего устройства из ведомого устройства, изменить адрес главной ссылки приложения и скопировать данные нового ведущего устройства из оставшихся. подчиненных узлах, этот процесс требует ручного вмешательства, которое отнимает много времени и энергии. Поэтому Redis официально предложил новое решение — механизм Sentinel, который позволяет добиться автоматического переключения при отказе без ручного вмешательства.

1: Что такое Сентинел?

Sentinel — это рабочий режим, который не обеспечивает никаких процессов чтения и записи. Он отвечает только за запуск специальных команд Redis для автоматического переключения при сбое. По умолчанию он работает на порту 26379 и для работы использует Redis. Вы можете запустить Redis от имени Sentinel с помощью следующей команды.

redis-sentinel /путь/к/sentinel.conf или redis-server /путь/к/sentinel.conf --sentinel

Redisизв исходном кодеsentinel.conf Используется для настройки Sentinel

//Указываем мастера для мониторинга // 127.0.0.1 6379 — главный адрес // 2 означает, что когда два стража считают мастер недействительным, мастер действительно недействителен. дозорный монитор mymaster 127.0.0.1 6379 2 //Сколько времени пройдет, прежде чем главный узел выйдет из строя, прежде чем стражник сочтет его недействительным? сбой часового через миллисекунды mymaster 60000 Тайм-аут аварийного переключения Sentinel mymaster 180000 параллельная синхронизация Sentinel с mymaster 1 дозорный монитор, восстановление 192.168.1.3 6380 4 дозорный сбой после восстановления в миллисекундах 10000 Sentinel Failover-Timeout Resque 180000 // При переключении ведущего/резервного до 5 ведомых могут одновременно синхронизировать нового ведущего. Sentinel с параллельной синхронизацией, восстановление 5

2: Какова польза Sentinel?

Согласно официальной документации Redis, дозорный узел в основном выполняет следующие функции:

1. Мониторинг

Sentinel будет контролировать каждый узел (главный, подчиненный) Redis, даже контролируя себя.

2. Аварийное переключение

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

3 уведомления

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

4. Предоставленная конфигурация

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

Третий: как Sentinel обнаруживает простой главного узла

1. Субъективный оффлайн

Так называемый субъективный офлайн означает, что определенный узел Sentinel считает, что главный узел находится в автономном режиме, но еще не уверен, и другие Sentinels должны проголосовать.

2. Цель оффлайн

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

Фактически, когда сам дозорный думает, что мастер оффлайн, это субъективный оффлайн, а дозорный в целом согласен, что мастер оффлайн, то это объективный оффлайн.

Конкретные шаги заключаются в следующем:

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

Субъективный оффлайн:

Если соответствующий узел не сможет эффективно ответить в течение указанного времени (после миллисекунды), он будет считаться субъективно отключенным (SDOWN). Уведомление! Правильный ответ здесь не обязательно PONG, это может быть -LOADING или -MASTERDOWN.

Цель оффлайн:

Все дозорные узлы должны подтверждать, что мастер действительно находится в автономном режиме один раз в секунду. Когда кворум (обычно более половины) дозорных узлов определяет, что мастер отключился, мастер считается объективно отключенным (ODOWN). Целью этого является предотвращение ошибочных оценок. В конце концов, стоимость аварийного переключения по-прежнему относительно велика, поэтому Redis официально рекомендует развертывать несколько дозорных узлов (дозорный кластер).

В Sentinel будет роль лидера, которая будет отвечать за аварийное переключение, то есть автоматически выбирать нового ведущего устройства из ведомого устройства и выполнять некоторую связанную работу (например, уведомлять ведомое устройство о информации о соединении нового ведущего устройства и позволять ему выполнять репликацию, чтобы стать новый), раб хозяина). Если дозорных узлов недостаточно, чтобы определить, что мастер находится в автономном режиме, когда мастер может эффективно ответить на команду PING дозорного, мастер больше не будет считаться субъективно отключенным и вернется в нормальное состояние.

Четвертое: Как Sentinel выбирает нового хозяина

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

1.ведомый приоритет

Вы можете вручную установить приоритет ведомого устройства через параметр «slave-priority». Чем выше приоритет, тем выше вероятность стать ведущим. Sentinel будет использовать ход репликации для дальнейшего принятия решения.

2. Копировать прогресс

Sentinel выберет подчиненный узел с наиболее полными данными и самым быстрым ходом репликации для обновления до главного.

3.runid

Обычно новый мастер выбирается после первых двух раундов проверки. Если существует несколько подчиненных узлов с одинаковым приоритетом и ходом репликации, то меньший runid станет новым мастером при запуске. случайная строка байтов в качестве идентификатора запуска.

Пятое: Как выбрать лидера в дозорном кластере

Это требует использования распределенных полей. Алгоритм консенсуса . Проще говоря, Алгоритм консенсуса да Пусть распределенная система изузел достигнет консенсуса по отдельной проблеме. существовать sentinel выборы leader В этом сценарии эти sentinel Консенсус, которого необходимо достичь, заключается в том, кто является leader 。 большинство Алгоритм консенсуса Вседана основе Paxos Алгоритм усовершенствован в sentinel выборы leader В этом сценарии Raft Рассчитать Закон. Это сравнение Paxos Метод Рассчитать легче понять и реализовать благодаря Алгоритму. консенсуса—Raft Метод рассчета. Точнее Рафт да MultiPaxos Вариант, который упрощает Multi-Paxos идеи становятся легче понять и реализовать связанный Raft Рассчитать Закон Вы можете обратиться к следующимстатья:Подробное объяснение Рафта Raft Соглашение в действии Redis Sentinel извыборы Leader Анализ исходного кода

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose