我正在运行 HAProxy 1.5.18 来前置 MySQL Percona XtraDB 集群,并按照 Percona 网站上的指南进行所有设置。
我看到“当前会话”统计信息没有更新,正如我所期望的那样,后端已经下降然后又回来了。
因此,很难准确了解哪个后端 mysql 节点正在占用所有流量。
这是我正在使用的前端/后端配置:
frontend pxc_frontend
mode tcp
bind *:6033
timeout client 28800s
default_backend pxc_backend
backend pxc_backend
mode tcp
timeout connect 10s
timeout server 28800s
balance leastconn
option httpchk
stick-table type ip size 1
stick on dst
server percona-node1 10.99.1.21:3306 check port 9200 inter 1000 rise 3 fall 3
server percona-node2 10.99.1.22:3306 backup check port 9200 inter 1000 rise 3 fall 3
server percona-node3 10.99.1.23:3306 backup check port 9200 inter 1000 rise 3 fall 3
这是我尝试过的:
1)启动我的应用程序 - 这与数据库建立了 50 个连接(通过 HAProxy),因此 HAProxy UI 中的“当前会话”统计数据显示为 50,用于作为活动的后端(在我的情况下为 percona-node1)。我使用 netstat 检查 HAProxy 和后端 MySQL 节点之间的连接数来验证这一点。
2)然后我关闭所有连接的后端 mysql 节点(percona-node1),并让 HAProxy 故障转移连接到列表中的下一个后端(percona-node2)。我使用 netstat 验证 HAProxy 与旧后端有 0 个连接(显然),现在与新后端有 50 个连接。HAProxy UI 中的“当前会话”统计数据显示为新后端的 50,但旧后端的数字通常 <50。
3)然后我将旧的后端 mysql 节点再次备份(percona-node1)。我再次使用 netstat 验证 HAProxy 与新重新启动的后端的连接为 0,并保持与后端 percona-node2 的 50 个连接。HAProxy UI 中的“当前会话”统计数据显示 percona-node1 的非零数字与之前相同,而 percona-node2 的非零数字为 50。我希望 percona-node1 显示 0,percona-node2 显示 50。
那么当前会话统计信息是否不会因为已关闭然后又回来的节点而被清除?
提前感谢您的智慧。