Master-Master架构
来源:互联网 发布:贝克汉姆助攻数据 编辑:程序博客网 时间:2024/05/16 12:35
对于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是异步实现机制,即使是晚更新的数据也可能被早修改的数据覆盖。
- Master-Master架构
- Dual Master 复制架构(Master-Master)
- Dual Master 复制架构(Master-Master)
- Jenkins Master/Slave架构
- Jenkins Master/Slave架构
- Jenkins Master/Slave架构
- MongoDB: master - slave 架构
- Jenkins Master/Slave架构
- Jenkins Master/Slave架构
- Alluxio架构图-Master
- Jenkins Master/Slave架构
- 【基础】MongoDB: master - slave 架构
- MongoDB架构篇Master-Slave
- jenkins搭建master-slave架构
- Master-Master Master-slave 区别
- MySQL数据库复制Master-Slave架构分析
- HBase HMaster Architecture - HBase Master架构
- 搭建MySQL的Master/Slave架构
- opencv中的FileStorage类使用注意事项
- Burp Suite使用介绍(一)
- ArrayList中调用set()方法,没有插入数据的问题
- 15数字排序 最后一个最小
- CodeForces 17B Hierarchy
- Master-Master架构
- Android6.0权限管理以及使用权限该注意的地方
- Android AutoLayout全新的适配方式 堪称适配终结者
- 将博客搬至CSDN
- 多元线性回归multivariable linear regression
- 面试准备android(二)
- select 中option 值在不同游览器的取值问题
- 判断素数并求和用平方根算法(C语言)
- C++中的GetTickCount()和Sleep()