Я установил высокодоступный (HA) кластер MariaDB Galera, который позволяет мне читать и записывать с любого узла в кластере.
Я ставлю балансировщик нагрузки HAProxy перед узлами кластера, который постоянновыполняет проверки здоровья.HAProxy направляет сообщения на исправные узлы, определяемые mysql-check
.
haproxy -> galera">
Вот строфа Galera Cluster от /etc/haproxy/haproxy.cfg
:
listen galera-cluster
balance source
bind *:3306
mode tcp
option tcpka
option mysql-check user haproxy_check
balance roundrobin
server galera01.woolford.io 10.0.1.31:3306 check
server galera02.woolford.io 10.0.1.32:3306 check
server galera03.woolford.io 10.0.1.33:3306 check
Обратите внимание на параметр tcpka
(TCP сохраняется).
Соединение с моим клиентом прерывается довольно часто, например,
mysql> select * from kafka_offset;
ERROR 2013 (HY000): Lost connection to MySQL server during query
Этого не произойдет, если яподключаться к узлу напрямую, а не через балансировщик нагрузки.
Является ли HAProxy разумным способом настройки HA MariaDB?Если нет, то как?