안녕히 가세요.
나는 후속 조치를 취하고 있다이 기사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"
내가 무엇을 놓치고 있나요? 도와주세요.
미리 감사드립니다.