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

Предотвратить переключение HAProxy с резервного на главный

У нас есть настройка Redis ведущий-ведомый, и мы хотим вернуться к ведомому, как только ведущий отказал. Но если он потерпел неудачу, он никогда не должен переключаться назад, даже если мастер снова в сети.

Это возможно?

Использовать stick 🏑 вариант. Из официальный блог HAproxy:

Автоматическое переключение без восстановления после сбоя

Приведенная ниже конфигурация позволяет HAProxy использовать s1, когда он доступен, в противном случае переключаться на s2, если он доступен. Когда происходит аварийное переключение, восстановление после сбоя не будет обрабатываться автоматически благодаря таблице стик:

backend bk_app
 stick-table type ip size 1 nopurge peers LB
 stick on dst
 server s1 10.0.0.1:80 check
 server s2 10.0.0.2:80 check backup

Есть обходной путь, чтобы сделать то, что вам нужно. Просто поставьте очень высокую оценку rise параметр и inter несколько секунд, как в примере ниже:

listen  sql-cluster 0.0.0.0:1433
        balance roundrobin
        server  sql01 192.168.100.109:1433 check backup
        server  sql02 192.168.100.180:1433 check inter 5s fall 3 rise 99999999

В этом примере sql01 является backup, и sql02 активен. Если хозяин не работает, sql01 вверх. Для sql02 чтобы вернуться в активное состояние, он должен выполнить 99.999.999 проверок работоспособности с интервалом в 5 секунд ... это примерно 15 лет!