首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于MySQL主从复制的HAProxy

用于MySQL主从复制的HAProxy
EN

Stack Overflow用户
提问于 2015-01-22 21:14:48
回答 3查看 8.4K关注 0票数 5

我们正在设置MySQL主从复制,一切都运行得很好。

目前,所有负载(读/写)都将发送到主服务器。我们的应用程序有99%的读取和1%的写入。

我们考虑将负载(只读)分配给Master和Slave。因此,我们考虑使用HAProxy将负载分配给两个MySQL服务器。

我们的要求是所有写操作仅重定向到主服务器,读操作在主服务器和从服务器之间分配。

EN

回答 3

Stack Overflow用户

发布于 2016-05-10 18:40:52

我已经在我的项目中实现了同样的方法。我在Ha-Proxy (LB01)后面有两个DB服务器( DB01,DB02 )。假设我的应用程序中有一个DB,我点击了ha-proxy。在我的应用程序中,我将数据库查询分发为在3307端口上读取,在3306端口上写入。

在haproxy.cfg (配置文件HAPROXY)中,两个侦听器为:

代码语言:javascript
复制
listen mysql-cluster
    bind  *:3306
    mode tcp
    balance roundrobin
    option mysql-check user mast_ha
    server DB01 10.x.x.x:3306 check maxconn 100000 


listen mysql-cluster-replica
    bind  *:3307
    mode tcp
    option mysql-check user mast_ha
    server DB02 10.x.x.x:3306 check maxconn 100000

并通过制作两个jdbc模板,一个用于读,一个用于写,来分发应用程序对mysql的调用。

票数 5
EN

Stack Overflow用户

发布于 2015-02-12 20:12:38

我们已经成功地为一个非常密集的读/写应用程序实现了我们的DB架构。我们有一个主机,所有的读/写操作都发生在这里,而两个从设备(A,B)中,所有的读操作都发生在那里。通常,主从复制假定读操作在从服务器上进行,所有其他操作(读和写)都在主服务器上进行。换句话说,slaves平衡了读操作。

我们在为读请求提供服务的WebServer之后放置了一个HAProxy。WebServer通过HAProxy连接到从机。HAProxy检查从站的状态,并在主站和从站之间平衡请求。为了便于配置,我们将DB服务器放在不同的LAN上。HAProxy的配置非常简单:只需使用默认配置并更改listen语句即可。例如:

代码语言:javascript
复制
listen slaves 10.8.214.14:3306
    balance     roundrobin
    option tcpka
    mode tcp
    option mysql-check user haproxy
    server  master   10.8.214.12:3306   check weight 1
    server  slave1   10.8.214.11:3306   check weight 1
    server  slave2   10.8.214.13:3306   check weight 1

还要记住在引导时启用haproxy。

如果您想更进一步,可以使用一些脚本集成对从属状态(SQL错误或同步问题)的监控。Ha proxy可以使用您想要的任何代理。看看herehere

如果你有一个非常密集的应用程序,我建议你使用合适的存储引擎,比如TokuDB,它可以很好地适应数据库的大小。

票数 1
EN

Stack Overflow用户

发布于 2016-04-21 10:36:40

MySQL代理具有拆分读/写拆分的功能。和负载均衡背后的多台mysql服务器。除了一些复杂的语句,读/写分离在大多数情况下都是有效的。

免责声明: MySQL Proxy目前是Alpha版本,不应在生产环境中使用。

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

https://stackoverflow.com/questions/28089708

复制
相关文章

相似问题

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