Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jdbc HAProxy负载平衡MySQL服务器_Jdbc_Haproxy_Percona - Fatal编程技术网

Jdbc HAProxy负载平衡MySQL服务器

Jdbc HAProxy负载平衡MySQL服务器,jdbc,haproxy,percona,Jdbc,Haproxy,Percona,我有一个使用Percona XtraDB的由3个节点组成的数据库集群。这三个节点配置在三个不同的系统上。我使用HAProxy负载平衡器将请求传递给这些节点。 三个节点中的两个在HAProxy中配置为备份。当我向负载平衡器连接URL发出请求时,默认情况下,我可以看到请求转到节点a。如果节点A关闭,我请求新的数据库连接,我会看到请求被路由到节点B。这符合所需的设计。 但是,如果使用Java程序(jdbc URL)将连接请求发送到HAProxy,则该请求将被路由到节点a,如果节点a出现故障,则在提供一

我有一个使用Percona XtraDB的由3个节点组成的数据库集群。这三个节点配置在三个不同的系统上。我使用HAProxy负载平衡器将请求传递给这些节点。 三个节点中的两个在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
全局
统计套接字/var/run/haproxy.sock模式0600级别管理员
日志127.0.0.1 local2调试
#chroot/var/lib/haproxy
pidfile/var/run/haproxy.pid
maxconn 4000
守护进程
默认值
模式tcp
日志全局
选项tcplog
超时连接10000#如果找不到后端,则默认超时10秒
超时客户端300000
超时服务器300000
maxconn 20000
#用于管理GUI
倾听统计数据
电话:8080
模式http
统计数据启用
统计uri/stats
听我说*:3306
模式tcp
平衡循环赛
选项mysql检查用户haproxyUser
选项日志运行状况检查
服务器MySQL节点:3306检查
服务器MySQL NodeB:3306检查备份
服务器MySQL节点:3306检查备份

无法使用listen*:3306下的tcp模式。使用此命令在此处发布前检查:

haproxy -f /etc/haproxy.cfg -V

你设法解决了这个问题吗?