LINUX.ORG.RU
ФорумAdmin

mariadb-galera + haproxy: критерии доступности

 , , ,


0

2

Приветствую, коллеги! Есть мастер-мастер кластер (2 ноды + арбитратор). Подключение приложения идет через haproxy, примерно вот так:

# Load Balancing for Galera Cluster
listen galera 0.0.0.0:3306
     balance source
     mode tcp
     option tcpka
     option mysql-check user haproxy
     server node1 192.168.1.201:3306 check weight 254
     server node2 192.168.1.202:3306 check weight 1

Всё работает (если доступна первая нода, приложение работает с ней, если упала - приложение коннектится ко второй). Проблема начинает когда node1 включается после отключения. Прокси видит, что node1 доступна и успешно проходит mysql-check, радостно переключает коннекты приложения на node1 и... получаем ошибки, т.к. node1 уже в кластере, но ещё не готова принимать данные.

Можно ли как-то научить haproxy определять доступность сервера не просто по mysql-check, а иным образом - например, выполнив на нодах

 mysql -u root -e "SHOW STATUS LIKE 'wsrep_ready' "
(если результат «ON» - работаем с нодой, в остальных случаях нет) ?

Сама опция mysql-check то, что ты хочешь, не умеет.

Попробуй увеличить интервал между проверками:

check inter 5000 fall 3

- проверять каждые 5с и после 3 ошибок считать недоступным. Примерное время доступности вычисли опытным путем, и увеличь:)

Fess88
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.