...
После выполнения процедуры принимается решение о переключении мастерства в кластере:
- Если если Slave получил более 50% голосов, то он становится новым мастером;
- Если если было получено ровно 50% голосов или менее, то Slave записывает в лог ошибку "unable to reach a quorum of nodes" и переходит в режим ожидания, не пытаясь стать мастером. Это предотвращает создание нескольких мастеров в кластере.
...
В Redis Sentinel кворум рассчитывается на основе количества Sentinel-процессов, следящих за кластером. В отказоустойчивой системе ЕССМ Sentinel-процесс запускается на Witness-node.
Только те Sentinel-ыпроцессы, которые настроены на мониторинг данного мастера и находятся в состоянии "активного мониторинга" (субъективно считают мастер доступным или недоступным), участвуют в голосовании. Sentinel-ы, которые вышли из строя, потеряли связь или были исключены, в расчете кворума на момент выборов не участвуют.
...
При обнаружении недоступности мастера Sentinel инициирует процедуру выборов лидера среди Sentinel-овпроцессов:
- Опрос — Sentinel отправляет другим Sentinel -ам запрос на голосование за себя. Каждый Sentinel может отдать свой голос только одному кандидату в текущем раунде голосования по принципу "первый запрос — первый голос";
- Подсчет голосов — учитываются ответившие узлы и голос самого кандидата.
...
После завершения выборов лидера принимается решение о запуске процедуры переключения:
Если если Sentinel набрал более 50% голосов от общего числа Sentinel-ов в кластере, он он объявляется лидером и имеет право инициировать failover;
- Если если было получено ровно 50% голосов или менее, то failover не инициируется не инициируется и ожидается новый раунд голосования.
...