use*_*864 5 mysql load-balancing haproxy ubuntu-10.04
我已经设置了 mysql 主-主复制,现在我正在尝试使用 Haproxy 对 mysql 服务器进行负载平衡。
下面的 haproxy 配置工作正常,它像循环一样旋转节点。
# this config needs haproxy-1.1.28 or haproxy-1.2.1
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
#chroot /usr/share/haproxy
chroot /etc/haproxy
user haproxy
group haproxy
pidfile /var/run/haproxy.pid
daemon
#debug
#quiet
defaults
log global
#mode http
mode tcp
#option httplog
option dontlognull
retries 3
option redispatch
maxconn 2000
#contimeout 5000
contimeout 3600000
#clitimeout 50000
clitimeout 3600000
#srvtimeout 50000
srvtimeout 3600000
listen mysql_cluster 0.0.0.0:3307
mode tcp
balance roundrobin
option mysql-check user root
#option httpchk GET /mysqlchk/?port=3306
option tcpka
server mysql1 192.168.1.107:3306
server mysql2 192.168.1.108:3306
Run Code Online (Sandbox Code Playgroud)
这不是我想要的。
我想要的是Active-Passive设置。就像,一个配置,以便它应该192.168.1.107默认发送所有请求,192.168.1.108如果192.168.1.107不存在则故障转移。我已经看到一些链接通过提及作为备份来做到这一点,但它对我没有任何作用。
当我尝试用以下配置替换上述配置的最后两行时,
server mysql1 192.168.1.107:3306 check port 9200 inter 12000 rise 3 fall 3
server mysql2 192.168.1.108:3306 check port 9200 inter 12000 rise 3 fall 3 backup
Run Code Online (Sandbox Code Playgroud)
我在重新启动 haproxy 时遇到以下错误消息并且它正在停止。
Jan 20 16:18:18 localhost haproxy[523]: proxy mysql_cluster has no server available!
Jan 20 16:18:18 localhost haproxy[523]: proxy mysql_cluster has no server available!
Run Code Online (Sandbox Code Playgroud)
任何人都有用于 mysql 负载平衡的 haproxy 的任何可靠工作配置,以便在生产中使用一些 haproxy 统计信息?我需要一个主动-被动配置,我在上面询问如果没有可用节点,哪个重定向到备份节点。我将在新的 ubuntu 生产服务器上实现这个。
任何帮助是极大的赞赏!。谢谢!
您有主-主复制工作,但即便如此,我也不认为将 HAProxy 用于 MySQL 负载平衡是正确的选择。
HAProxy 很棒,但是当作为 TCP 级别的负载均衡器运行时,它不能有任何 SQL 状态的概念。长时间运行的 SQL 事务的行为不清楚且容易出错;这是你不应该高兴的事情。
您的主-主设置具有单个节点的写入容量(因为所有写入都需要复制)。因此,您在设置中扩展的是读取和连接。一个更常见的,恕我直言更好的设置是:
MySQL 代理或其他连接处理中间件之类的东西也可能适用于您的情况。
“高性能 MySQL”是一本非常好的书,提供了有关如何扩展 MySQL 的实用建议。如果你读了这本书,我想你会更清楚地看到哪些设计是常见的,并且在你的特定情况下得到了证明。
| 归档时间: |
|
| 查看次数: |
12800 次 |
| 最近记录: |