对于我们在亚马逊EC2实例上安装的应用程序,我们使用的是主-主复制模式下安装在2个EC2实例上的MySQL数据库。为了实现这些DB服务器的负载均衡,我使用了一个部署在另一个EC2实例上的HAProxy,该实例带有配置
listen mysql <public dns of haproxy>:<port>
mode tcp
balance roundrobin
server mysql-db-s1 <elastic ip of db server1>:<port> maxconn 2000
server mysql-db-s2 <elast
我有一个运行HAProxy的服务器来负载平衡我们的mysql服务器。当我们在相当长的一段时间内有较低的平均负载时,一些服务器可能会出现故障,但是,在将来,如果负载再次升高,这些服务器就会自动上升。问题是,当一个实例发生故障时,HAProxy就不再寻找它了,所以当实例再次出现时,它就被忽略了。为了解决这个问题,我们在需要时重新启动。
下面是我们的配置文件:
global
log 127.0.0.1 local0 notice
user haproxy
group haproxy
defaults
log global
retries 2
time
我在一个多主机设置中设置了一个由3台MariaDB服务器组成的集群,运行良好。我为HaProxy添加了第4台服务器,用于负载平衡和循环,这样我们就可以有一些冗余,这也是工作的,除了一个问题。
我登录到运行以下查询的MySQL服务器上的HaProxy客户端:
show variables like 'server_id';
我正在获得结果,但如果我等待5秒或更长时间,然后再次运行查询,则会得到以下错误:
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Conn
我们使用HAProxy (1.5)将mysql代理到4个Galera节点。我们使用roundrobin,对高可用性和负载平衡有很好的效果。
见/etc/haproxy/haproxy.cfg
global
user haproxy
group haproxy
defaults
mode http
log global
retries 2
timeout connect 3000ms
timeout server 10h
timeout client 10h
listen stats
bind *:8404
stat
我有一个webapp (Tomcat/Hibernate/DBCP1.4),它可以在MySQL上运行查询,对于特定的负载,比如说每秒50个查询,它工作得很好。当我通过HAProxy路由相同的中等负载时(仍然只使用一个数据库),我得到一个失败,可能每500个查询就有一个失败。我的应用报告:
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was
我意识到,如果数据库服务器是外部的和独立的,那么使用HAPROXY来处理数据库和服务器会更好,但是是否可能有2台服务器相互复制数据库和文件,并由1台have服务器来平衡负载?有一些困难,让我的have文件工作,同时监听两者,以下是我到目前为止的情况:
global
log 127.0.0.1 local0 notice
maxconn 2000
user haproxy
group haproxy
defaults
log global
mode http
我试图使用MariaDB负载均衡器连接到HAProxy,但当我试图连接到HAProxy时,它会返回该错误。我尝试了堆栈溢出上关于这个错误的所有链接,但是它们对我不起作用。我该怎么办?
2013 - Lost connection to MySQL server at 'reading initial communication packet',
system error: 0 "Internal error/check (Not system error)"
我有带有3个节点的MariaDB Galera集群,下面是我使用的HAProxy配置。
listen t
我的HAProxy在VIP:192.168.61.32上运行,我还检查了netstat -tulnp|grep 3306
tcp 0 0 192.168.61.32:3306 0.0.0.0:* LISTEN 7895/haproxy
但是当我运行mysql -h 192.168.61.32 -u root -p时:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet',
我试图使用这里概述的方法为mySQL从服务器集群设置haproxy LB,在github的工程博客里。我已经让xinetd检查正常工作,但是当我试图通过mysql客户端通过hangs端点登录到后端主机时,客户机只是无限期挂起。卷发似乎到达后端主机,但我在响应中看到了“数据包无序”:
[me@jump01 ~]$curl haproxy01.domain:3306/check-lag
5.6.32-78.1-log�m-}1w)`*O0��!�B:>da85>w`[)mysql_native_password!��#08S01Got packets out of order
下面是这