Master-Master架构

对于MySQL数据库的Master-Slave架构设计,对于一般的对可用性要求不高的系统来说,是一个不错的设计方案,但是如果对可用性要求较高,就会存在一定的问题,我们先看看Master-Slave架构的特点:一个Master作为主数据库服务器,主要功能是负责处理应用客户端的写数据处理,还担当众多Slave数据库复制数据源的角色。多个master主要是负责应用客户端的读数据处理。但是我们的Master数据库服务器难免会出现故障而停机,或者系统需要停机升级,这时就需要短暂的停机,从而导致系统无法处理写数据业务。这对于一些高可用性的系统来说是个无法接受的问题,因为很多领域的应用系统是需要24小时提供服务的。这时我们可以考虑Master-Master架构。
Master-Master架构的主要特点是:提供两个Master服务器,对应用客户端都提供读写服务,而这两个Master服务器互相将对方作为自己的Master,而自己作为对方的Slave来进行数据复制。这样,任何一方的数据修改都会复制到对方数据库。

但是,需要说明的是,Master-Master架构在实际应用中,并不需要2个Master服务器端都提供写数据的服务,因为这样的架构设计仅仅是解决可用性问题,也就是解决一台Master宕机或故障后无法提供写数据服务的问题,所以正常的情况下,只需要一台Master服务器提供写数据服务,而另一台则只提供读数据服务,同时兼承担备份写数据服务的角色。而且,在小型系统中,只需要一台Master服务器,提供读写服务,另外一台则只承担备份写数据服务的角色。这些都是根据需求灵活变化的。
也许有人会问,既然这种架构2个Master都可以提供读写服务,那么为什么不都负责读写呢,这样不是读写效率更高吗?2台服务器分担写数据服务效率自然高,但是必然产生一个新的问题,那就是数据的一致性问题。2台服务器写数据容易造成数据的不一致,而且MySQL Replicaiton是异步实现机制,即使是晚更新的数据也可能被早修改的数据覆盖。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值