2

テストした MariaDB Galera クラスターをセットアップしましたが、次のサーバーで正常に動作しています。

それらはすべて CentOS-6.5 で実行されており、MariaDB のバージョンは 10.0 です。

私の目標は、HAproxy を使用して負荷分散を実行することでした。別のサーバーに HAproxy をインストールして構成しました

db4 192.168.0.4 

クラスターのセットアップも MariaDB もインストールされておらず、HAproxy のみがインストールされています。問題は、HAproxy が機能していないように見えることです。つまり、ロード バランシングを実行していません。問題なく起動し、Web インターフェイス経由でアクセスできます。

http://192.168.0.4:9000/haproxy

しかし、サーバーのステータスは、実際にはそれぞれのマシンで稼働している場合でも、サーバーがダウンしていることを示しています。HAproxy 構成は次のとおりです。

global
log 127.0.0.1 local0 notice
user haproxy
group haproxy

defaults
log global
retries 2
timeout connect 1000
timeout server 5000
timeout client 5000

listen mariadb-cluster
bind 0.0.0.0:3306
mode tcp
option mysql-check user haproxy
balance roundrobin
server db1 192.168.0.1:3306 check
server db2 192.168.0.2:3306 check
server db4 192.168.0.3:3306 check

listen webinterface
bind 0.0.0.0:9000
mode http
stats enable
stats uri /haproxy
stats realm Strictly\ Private
stats auth admin:password

db1、db2、db3、および db4 は、各サーバーの単なるホスト名です。したがって、最初のサーバーでコマンド #hostname を実行すると、db1 が表示されます。

4

3 に答える 3

0

私もこの問題に遭遇し、HAPROXY にバックエンド バランシング/ヘルス チェックの 2 つのモードがあることを確認するためだけにほぼ 1 日を費やしました。レイヤー 4 チェックは OSI レイヤー 4 で動作し、レイヤー 7 はアプリ レベルで動作します。option mysql-checkレイヤー 7 をチェックするものを使用しmysql-clientており、HAPROXY サーバー/ノードにインストールする必要があります。HAPROXY マシン/コンテナー (docker) に Mysql-client パッケージがありませんでした。次に、オプションチェックを正常に機能するように変換しましたoption tcp-check。これが私の完全なコードですhaproxy.cfg

global
    log haproxy-logger local0 notice
    fuser 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
    option tcp-check
    balance roundrobin
    server mysql1 mysql1:3306 check
    server mysql2 mysql2:3306 check weight 2
listen mysql-clusterstats
    bind 0.0.0.0:8080
    mode http
    stats enable
    stats uri /
    stats realm Strictly\ Private
    stats auth status:mypass

最終的にレイヤ 4 ロード バランシングに変更することで修正されました

詳細については、私のブログ ( HAProxy – Docker 上の Mysql クラスター) を参照してください。

于 2016-09-21T14:07:20.127 に答える