首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >2 mySQL簇在HAProxy中的应用

问2 mySQL簇在HAProxy中的应用
EN

Stack Overflow用户
提问于 2020-09-23 10:13:54
回答 1查看 688关注 0票数 1

我们使用HAProxy (1.5)将mysql代理到4个Galera节点。我们使用roundrobin,对高可用性和负载平衡有很好的效果。

见/etc/haproxy/haproxy.cfg

代码语言:javascript
复制
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
    stats enable
    stats hide-version
    stats uri /stats
listen mysql-cluster
    bind 127.0.0.1:3306
    mode tcp
    option mysql-check user haproxy_check
    balance roundrobin
    server dbcl_01_dc1 xx.xx.xx.xx:3306 check
    server dbcl_03_dc6 1xx.xx.xx.xx:3306 check
    server dbcl_04_do xx.xx.xx.xx:3306 check
    server dbcl_05_dc4 xx.xx.xx.xx:3306 check

这很好,但是我们担心有一天集群会失败,如果上面的4个galera节点都没有可用,我们希望have可以转到另一个mysql服务器上。我们只希望最后一台服务器被用作厄运日场景,因为它的数据比生产集群落后一个小时,更重要的是,它是一个不同的数据集。我们的想法是,我们从一个小时后自动转到我们的非集群mysql数据,并保持我们的客户运行。

有人知道HAProxy是否有这个可能吗?因此,在roundrobin中的前4台服务器,如果它们不可用,那么选择非集群的单一数据库服务器作为最后手段。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-23 10:50:26

您可以尝试使用backup来帮助您配置故障转移。

代码语言:javascript
复制
listen mysql-cluster
    bind 127.0.0.1:3306
    mode tcp
    option mysql-check user haproxy_check
    balance roundrobin
    server dbcl_01_dc1 xx.xx.xx.xx:3306 check
    server dbcl_03_dc6 xx.xx.xx.xx:3306 check
    server dbcl_04_dc2 xx.xx.xx.xx:3306 check
    server dbcl_05_dc4 xx.xx.xx.xx:3306 check
    // Solution
    server dbbk_01_dc1 xx.xx.xx.xx:3306 check backup

在这种情况下,如果集群中的4台服务器全部中断,流量将被路由到备份服务器。

但是,您也可以尝试多个backup服务器作为配置的一部分。

代码语言:javascript
复制
listen mysql-cluster
    bind 127.0.0.1:3306
    mode tcp
    option mysql-check user haproxy_check
    balance roundrobin
    server dbcl_01_dc1 xx.xx.xx.xx:3306 check
    server dbcl_03_dc6 xx.xx.xx.xx:3306 check
    server dbcl_04_dc2 xx.xx.xx.xx:3306 check
    server dbcl_05_dc4 xx.xx.xx.xx:3306 check
    // Solution
    server dbbk_01_dc1 xx.xx.xx.xx:3306 check backup
    server dbbk_02_dc2 xx.xx.xx.xx:3306 check backup

在上面的解决方案中,HAProxy选择第一台服务器作为备份,直到它关闭为止,并且作为故障转移,如果第一台备份服务器出现故障,它使用第二台服务器来服务流量。

如果有巨大的流量激增,并且您希望多个备份来处理所有的流量,您还可以使用option allbackups设置类似的内容,它将流量路由到所有备份。

正式文件的设置要复杂得多。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64025695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档