我正在尝试为具有3个不同节点的percona DB配置ha-proxy。我的配置如下 -
backend mysql_backend
mode tcp
option tcplog
balance leastconn
option httpchk default-server port 9200 inter 5s downinter 10s rise 3 fall 2 maxconn 256
server percona1 percona-1:3306 check port <port_num> inter 12000 rise 3 fall 3 maxconn 450
server percona2 percona-2:3306 check port <port_num> inter 12000 rise 3 fall 3 maxconn 450 backup
server percona3 percona-3:3306 check port <port_num> inter 12000 rise 3 fall 3 maxconn 450 backup
在上面的配置中,*maxconn 450*
指定将发送到此服务器1的最大并发连接数,即percona1。现在出现在我脑海中的有趣的事情,如果
连接数达到450而另一个请求来了? 451st请求是否会排队,或者它将被转发到percona2 / percona3(如果percona1失败,这是一个备份服务器,但这里percona1没有失败但达到限制)
配置Percona1(my.conf),例如它一次可以处理多达250个连接,但是从代理服务器,它在代理服务器中配置的时候就像450那样得到250多个。
我的问题是在上述场景中会发生什么?
我已阅读文档,但我得到任何明确的信息。非常感谢帮助。
答案 0 :(得分:1)
我猜你在谈论Percona XtraDb群集,因为以这种方式使用HAproxy和3个独立的MySQL实例会导致灾难(如果它们是单独的实例,现在重新构建! )。以下是您的问题的答案:
ulimit -n
,以确保它的连接限制超过1350(450 * 3个节点) )* max_connections
的{{1}}参数,那么你应该将该参数设置为略高于HAproxy { {1}}该特定服务器的值以避免超时