0

Percona XtraDB を使用して 3 ノードのデータベース クラスターがあります。3 つのノードは、3 つの異なるシステム上に構成されています。HAProxy ロード バランサーを使用して、これらのノードにリクエストを渡しました。3 つのノードのうち 2 つが HAProxy のバックアップとして構成されています。ロード バランサー接続 URL にリクエストを送信すると、リクエストがデフォルトでノード A に送信されることがわかります。ノード A がダウンしており、新しいデータベース接続を要求すると、要求がノード B にルーティングされていることがわかります。これは、目的の設計どおりです。しかし、Javaプログラム(jdbc URL)を使用してHAProxyに接続リクエストを送信すると、リクエストはノードAにルーティングされ、ノードAがダウンした場合はいくつかのリクエストを処理した後、ノードB/ノードCにリクエストを処理させたい. 現在のシナリオでは、「接続に失敗しました」と表示されます。ノードに障害が発生した場合に、データベース接続は失敗せず、今後のリクエストは次に使用可能なノードにルーティングされますか? 現在の HAProxy 構成ファイルは次のとおりです。

global
stats socket /var/run/haproxy.sock mode 0600 level admin
log 127.0.0.1 local2 debug
#chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
daemon
defaults
mode tcp
log global
option tcplog
timeout connect 10000 # default 10 second time out if a backend is not found
timeout client 300000
timeout server 300000
maxconn 20000
# For Admin GUI
listen stats
bind :8080
mode http
stats enable
stats uri /stats
listen mysql *:3306
mode tcp
balance roundrobin
option mysql-check user haproxyUser
option log-health-checks
server MySQL-NodeA <ip-address>:3306 check
server MySQL-NodeB <ip-address>:3306 check backup
server MySQL-NodeC <ip-address>:3306 check backup
4

1 に答える 1