Roundrobinを使用するHAProxyは、3つのMySQLサーバーのうち2つでのみ機能します。なぜですか?

Roundrobinを使用するHAProxyは、3つのMySQLサーバーのうち2つでのみ機能します。なぜですか?

さようなら行ってください。

私はフォローアップをしています。この記事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"

私は何を見逃していますか?助けてください。

よろしくお願いします。

ベストアンサー1

おすすめ記事