HAProxy для Redis Sentinel: хочу BACKUP, а не DOWN

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

Просто желая быть дотошным, подчиненные узлы отображаются как "ВНИЗ" (красный цвет) в статистическом отчете HAProxy (Тайм-аут уровня 7: на шаге 5 tcp-check (ожидайте строку 'role: master')). Есть ли способ, чтобы они отображались как "резервное копирование UP" (синий цвет), что является правильным определением?

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

Это конфигурация HAProxy:

frontend Redis
    bind            192.168.70.90:6379 name 192.168.70.90:6379   
    mode            tcp
    log         global
    timeout client      30000
    default_backend     Redis_tcp_ipvANY

backend Redis_tcp_ipvANY
    mode            tcp
    timeout connect     30000
    timeout server      30000
    retries         3
    option tcp-check
    tcp-check connect
    tcp-check send PING\r\n
    tcp-check expect string +PONG
    tcp-check send info\ replication\r\n
    tcp-check expect string role:master
    tcp-check send QUIT\r\n
    tcp-check expect string +OK
    server          redis1 192.168.70.91:6379 check inter 1000  maxconn 1024 
    server          redis2 192.168.70.92:6379 check inter 1000  maxconn 1024 
    server          redis3 192.168.70.93:6379 check inter 1000  maxconn 1024 

У вас есть идеи о том, как можно делать то, что я хочу?

Спасибо!

1 ответ

Это возможно, но так как у вас есть более двух узлов, ЭТО НЕ ПРАВИЛЬНО НЕ ОТКАЗАНО. Но так как вы спросили:

backend Redis_tcp_ipvANY
    mode            tcp
    timeout connect     30000
    timeout server      30000
    retries         3
    option tcp-check
    tcp-check connect
    tcp-check send PING\r\n
    tcp-check expect string +PONG
    tcp-check send QUIT\r\n
    tcp-check expect string +OK
    server          redis1 192.168.70.91:6379        inter 1000  maxconn 1024 check
    server          redis2 192.168.70.92:6379 backup inter 1000  maxconn 1024 check
    server          redis3 192.168.70.93:6379 backup inter 1000  maxconn 1024 check

Гапрокси BACKUP состояние просто означает, что сервер не будет рассматриваться для балансировки нагрузки, пока любой обычный сервер UP, Я думаю, ваша нынешняя настройка лучше.

Другие вопросы по тегам