У нас есть настройка 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 лет!