Почему ведомые устройства Redis не берут на себя управление ведущим после сбоя ведущего в кластере Redis?

У меня есть кластер Redis с 2 ведущими и 4 ведомыми (по 2 ведомых на каждого ведущего). После того, как я вручную сбой главного устройства (т.е. redis-cli -p 6379 debug segfault ), подчиненные устройства ничего не делают. Они обнаруживают, что с мастером что-то не так, но ничего не делают (я ждал 20 минут).

Вот вывод узлов кластера (то есть redis-cli узлов кластера ):

08dfd1bdd470a8831b33b7b0409a40bf45ee22d0 192.168.0.15:6379 myself,slave 55787eb63780365a0c7d4a0ed72cac4b97a55ed0 0 0 1 connected
7fedf234aba8d906dca5a4725a54d1cc5c979c18 192.168.0.18:6379 slave a739cfbcd9b804345808bb3a78b6a00b2d6050f9 0 1477865886164 2 connected
a739cfbcd9b804345808bb3a78b6a00b2d6050f9 192.168.0.14:6379 master,fail? - 1477865551940 1477865548392 0 disconnected 8192-16383
5dcc0a0a3f13ea9343171a13fbf0ec7054dfc2ab 192.168.0.19:6379 slave a739cfbcd9b804345808bb3a78b6a00b2d6050f9 0 1477865884135 5 connected
55787eb63780365a0c7d4a0ed72cac4b97a55ed0 192.168.0.16:6379 master - 0 1477865885150 2 connected 0-8191
601a5e0dd9d40d8c01119714e89be63eaee87900 192.168.0.17:6379 slave 55787eb63780365a0c7d4a0ed72cac4b97a55ed0 0 1477865882100 3 connected

Как мы видим вот отказавший главный узел 192.168.0.14:6379 , который помечен как главный, сбой ? . Я не знаю, почему там стоит вопросительный знак. Но жду 20 минут и ничего не изменилось. Почему рабы не Не взять на себя управление хозяином?

1
задан 31 October 2016 в 00:25
2 ответа

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

3
ответ дан 3 December 2019 в 18:32

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

0
ответ дан 3 December 2019 в 18:32

Теги

Похожие вопросы