mysql proxy 多主_mysql多主多从架构与mysql-proxy读写分离

mysql多主多从架构与mysql-proxy读写分离

最近心血来潮想要部署几台mysql的服务器,实现一个多主多从的服务器架构,并且要在这个架构上利用mysql-proxy实现读写分离操作,之前只是搭建过一主多从的架构,原本以为多主多从的架构也会非常简单,但是过程中还是发现了一些比较有意思的地方,所以我决定还是写一篇博客来记录一下。

下面是我的mysql多主多从架构拓扑图:

0818b9ca8b590ca3270a3433284dd417.png

主从结构以及IP地址已经很明显,接下来我说说我的配置,以及在我搭建过程中遇到的一些比较有意思的问题。

互为主从结构只不过是在master1于master2上互相设置主服务器为对方:

本机登录master1的数据库:

mysql > changemaster to \

-> master_host=’10.60.77.207’ ,\

->master_user=’slaveuser’, \

->master_password=’123456’, \

->master_log_file=’mysqld-bin.000001’, \

->masetr_log_pos=243;

此处有一个问题,每一条配置后面都要有一个英文逗号作为分隔,如果不写或者写成别的符号会报错。记得有一次在配置的过程中我就没写逗号,然后一直报错,后来反复检查发现这个逗号是必不可少的。

至于两台从服务器配置与我上述博客中的配置完全相同,配置完成后开启主从服务,正式开始测试阶段,就是在这个时候,开始出现问题,我的测试过程如下:

先在master1上创建一个新的数据库,然后,在slave1上和master上查看,此时数据是正常的。但是在slave2上查看的时候我发现slave2并没有将该数据库同步过来。发现这个问题之后,我就去master2上新建一个数据库,和我猜想的一样,除了slave1以外的主机都可以正常同步。

这个问题很值得思考,为什么会有这样的结果,后来经过思考、询问大牛等发现,这个机制其实就类似于某些路由选择协议中的放环机制,防止sql语句在各台设备中出现回环。

同时,在大牛的帮助下,找到了实现上述架构的配置选项。当你需要链式复制的时候,如A->B->C,你就必须在B主机上的mysql中添加一条配置:

log_slave_updates,此配置允许链式复制。

在本文的架构中,master1和master2的mysql配置文件中的[mysqld]部分中添加上述配置,然后重启两台服务器的mysql服务。这次再测试一下发现,所有的机器上都可以正常同步了。

上述问题是在搭建主从结构的时候遇到的一个问题,接下来,我在搭建mysql-proxy的时候无意中又发现了一个问题,注意,上述测试过程中,我第一次在master1和master2分别创建的测试数据库在slave2和slave1上是没有同步到的,也就是我在搭建mysql-proxy服务的时候,在slave1和slave2上数据库其实是不同的。

关于使用mysql-proxy搭建读写分离的实验可以参考我的博客http://www.voidcn.com/article/p-wwefoxvb-py.html,此次我发现的问题不在服务的配置上。

在我测试的过程中,我连接mysql-proxy读取数据,发现我此时查看到的数据库是slave1和slave2上的数据的和,也就是slave1和slave2上面所有的数据库我都能看到。这也就意味着,mysql-proxy在分配读写请求的时候并不是按照负载均衡的方式来分配读写的,而是请求会同时分配到两台主机上,两台主机同时响应该请求。

这个问题的发现使我对我这个小架构有了一个新的认识,原来我设计这个架构的初衷是为了提供一个负载均衡的效果,现在看来使用mysql-proxy并不能实现负载均衡,倒是可以提高系统的性能,因为这相当于两台机器合成成了一台服务器在提供服务嘛。

这篇博客可能技术含量不大,但是这些问题的确是我在工作中摸索出来的经验,所以我还是决定把这些记录下来,作为我给人的一个技术积累,欢迎各位看官给我留言,也请大神不要喷我。

我们都是手艺人,运维也是一种手艺,是一门艺术,我爱这一行,我爱我的工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值