さようなら行ってください。
私はフォローアップをしています。この記事3つのMySQLサーバー間のラウンドロビンバランスのためのHAProxyの設定(db1、db2、db3)MariaDB Galeraクラスタで(完璧に動作します)。
しかし、問題があります。このチュートリアルには、mysql -h 127.0.0.1 -u haproxy_root -p -e "show variables like 'server_id'"
サーバー名と同じ結果を確認するためにコマンドを実行する必要がある「ロードバランシングとフェイルオーバーのテスト」領域があります。同じコマンドを複数回実行すると、ループが前後にジャンプするようにマークさdb1
れますdb2
。決して転送されませんdb3
。ループがすべてのサーバー間で移動する必要があることをどこでも読んでいますが、私の場合はdb1とdb2の間でのみ機能しますが、db3では機能しないのはなぜですか?
私のHAProxy設定を確認してください。
global
log 127.0.0.1 local0 notice
user haproxy
group haproxy
defaults
log global
retries 2
timeout connect 3000
timeout server 5000
timeout client 5000
listen mysql-cluster
bind 0.0.0.0:3306
mode tcp
option mysql-check user haproxy_check
balance roundrobin
server db1 172.28.109.10:3306 check
server db2 172.28.109.11:3306 check
server db3 172.28.109.12:3306 check
listen 127.0.0.1:8080
mode http
stats enable
stats uri /
stats realm Strictly\ Private
stats auth monitor_user:password
これら3つのサーバーはMariaDB Galeraクラスタ構成ファイルで正しく宣言されており、それらの間で完全に機能します。ここでそれらのいくつかをチェックしてください:
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://171.28.109.10, 171.28.109.11, 171.28.109.12"
wsrep_cluster_name='galera_cluster'
wsrep_node_address='171.28.109.10'
wsrep_node_name='db1'
wsrep_sst_method=rsync
wsrep_sst_auth="user:password"
私は何を見逃していますか?助けてください。
よろしくお願いします。