Назад | Перейти на главную страницу

Redis sentinel: принудительное переключение на другого мастера

Контекст:

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

Необходимость:

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

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

tl; dr:

Могу ли я дать указание своим стражам выбрать конкретный узел Redis в качестве главного?

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

Имитация зависания серверов Redis:

redis-cli DEBUG sleep 30

или

redis-cli DEBUG segfault

Затем принудительно переключитесь:

SENTINEL failover

Возможно, лучший подход - использовать опцию приоритета.

Из https://redis.io/topics/sentinel

Приоритет рабов

Экземпляры Redis имеют параметр конфигурации, называемый приоритетом подчиненного. Эта информация предоставляется экземплярами подчиненного устройства Redis в их выводе INFO, и Sentinel использует ее, чтобы выбрать подчиненное устройство среди тех, которые могут использоваться для переключения главного устройства при отказе:

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

Например, если есть ведомое устройство S1 в том же центре обработки данных текущего ведущего устройства, а другое ведомое устройство S2 в другом центре обработки данных, можно установить S1 с приоритетом 10 и S2 с приоритетом 100, так что если Мастер не работает, и S1 и S2 доступны, S1 будет предпочтительнее.

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