Приветствую, коллеги! Есть мастер-мастер кластер (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' "