利用Mysql5.7的新特性实现多机房高可用架构【转】
再牛逼的架构也敌不过挖掘机,无论单机房内你的架构多么的高可用,多么的完善,当挖掘机挖下去那一瞬间,都是扯蛋,楼主所在的公司也被挖掘机挖断过光纤、电力线。
为什么大家都在谈论服务冗余,缓存击穿等高可用时,很少人谈到数据库的高可用呢?这是因为数据库是有状态的。服务可以部署到多个机房,并且同时提供服务,但是数据库却只能有一个机房做主服务,如果多机房,每个机房都有自己的主服务,那么多主同时写造成的数据冲突,同步问题所耗费的人力,物力将会得不偿失,而单主带来的问题是: mysql5.6/mysql5.5的同步模板是after-commit,也就是主服务器会保证主上binlog已经落盘,并且异步发送给slave,这个时候用户已经在主服务器上能看到提交的事务,假如此时出现网络问题,另外一个机房的slave变成主时,用户会发现刚才做的操作都回滚了,也就是事务不见了。
为了解决这个问题,mysql5.7引入了after-sync模式,这个模式下,master必须等待salve已经把binlog落盘,才会把事务提交到存储层,并且返回给客户端成功。
这个时候我们可以在同城搭建三个机房A、B、C,其中A、B机房做为冗余部署,服务,数据库都各部署一套,而C机房只部署数据库,做为数据库的日志机房。我们开启Mysql的半同步模式after-sync, 这个时候他可以保证在返回给客户端事务提交成功时,日志肯定已经同步给B、C中的任意机房,当某一天A的断电的时候,这个时候,我们只需要DBA对比B、C的日志文件,如果发现B比C多,那么直接把B做为主,C做为备,将所有流量切到B机房即可;如果发现C机房日志比B机房多,这种情况发生在,断电的瞬间,A和B之间的网络先断开,部分事务成功发送到C,这个时候,由DBA手动将C多出的日志同步到B,再开启B做为主服务,所有流量切到B机房,这个操作可以在半小时内完成。虽然此架构不能保证A断电的情况,B能立即提供服务,但是这个方案能保证不丢失数据,并且能在极短的时间内恢复。
架构图如下:
转自
https://www.toutiao.com/i6497872566609248781/
利用Mysql5.7的新特性实现多机房高可用架构【转】的更多相关文章
- MySQL5.6 GTID新特性实践
MySQL5.6 GTID新特性实践 GTID简介 搭建 实验一:如果slave所需要事务对应的GTID在master上已经被purge了 实验二:忽略purged的部分,强行同步 本文将简单介绍基于 ...
- 分布式架构高可用架构篇_07_MySQL主从复制的配置(CentOS-6.7+MySQL-5.6)
参考: 龙果学院http://www.roncoo.com/share.html?hamc=hLPG8QsaaWVOl2Z76wpJHp3JBbZZF%2Bywm5vEfPp9LbLkAjAnB%2B ...
- MySQL高可用架构之MySQL5.7组复制MGR
MySQL高可用架构之MySQL5.7组复制MGR########################################################################### ...
- MySQL5.7的新特性
MySQL 5.7版本据说已经在了很大的性能提升以及做得更加安全了,想了解更多MySQL 5.7的新特性可以参考我转载叶金荣老师的MySQL 5.7的新特性说明.这里我简单演示一下MySQL 5.7的 ...
- (MHA+MYSQL-5.7增强半同步)高可用架构设计与实现
架构使用mysql5.7版本基于GTD增强半同步并行复制配置 reploication 一主两从,使用MHA套件管理整个复制架构,实现故障自动切换高可用 优势: ...
- linux下mysql5.7的MHA高可用架构搭建
一.MHA简介 MHA(Master High Availability)目前在mysql高可用方面比较成熟.是一套优秀的作为 mysql高可用性环境下故障切换和主从提升的高可用软件.在MySQL故障 ...
- mysql高可用架构MHA搭建(centos7+mysql5.7.28)
无论是传统行业,还是互联网行业,数据可用性都是至关重要的,虽然现在已经步入大数据时代,nosql比较流行,但是作为数据持久化及事务性的关系型数据库依然是项目首选,比如mysql. 现在几乎所有的公司项 ...
- mysql5.7高可用架构之MHA
一.MHA简介 MHA(Master High Availability)目前在mysql高可用方面比较成熟.是一套优秀的作为 mysql高可用性环境下故障切换和主从提升的高可用软件.在MySQL故障 ...
- 初试mysql5.7.2新特性:多源复制(MySQL 5.7 multi-source replication)
多源复制和多主复制的区别: 多主复制示意图: 多源复制示意图: 在my.cnf中添加crash safe特性参数:master_info_repository=TABLE;relay_log_info ...
随机推荐
- 01 Spring Boot 的简单配置和使用
Spring Boot 简介 使用 Spring Boot 可以让我们快速创建一个基于 Spring 的项目,而让这个 Spring 项目跑起来我们只需要很少的配置就可以了. 创建 Spring Bo ...
- 简明Python教程自学笔记——命令行通讯录
[前言]学习Python已经有一段时间了,相关的书籍资料也下载了不少,但是没有一本完整的看完,也没有编出一个完整的程序.今天下午比较清闲就把<简明Python教程>看了一遍,然后根据书里面 ...
- tomcat启动后过一会就自动关闭
1.打开tomcat 下的log查看关键字眼 常见问题就是端口被占用,被idea 页面启动占用了
- ZJOI2018外省选手酱油记Day1
Day0 上午考试...又爆零了 下午讲完题后放假 然后就滚回去收拾行李准备去\(ZJ\) Day1 衢州?我怎么从来没听过这个地方..肯定是我见识少 下午 上高铁出发,\(3个小时\),看了一下电影 ...
- BZOJ3155:Preprefix sum——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=3155 最朴素的想法是两棵树状数组,一个记录前缀和,一个记录前缀前缀和,但是第二个我们非常不好修改 ...
- 【bzoj2002】 Hnoi2010—Bounce 弹飞绵羊
http://www.lydsy.com/JudgeOnline/problem.php?id=2002 (题目链接) 题意 数轴上${n}$个点,每个点有一个权值${a_i}$,如果到达这个点,接下 ...
- 使用cmstp绕过应用程序白名单
默认情况下,AppLocker允许在文件夹中执行二进制文件,这是可以绕过它的主要原因.已经发现,这样的二进制文件可以很容易地用于绕过AppLocker和UAC.与Microsoft相关的二进制文件之一 ...
- Bypass AV meterpreter免杀技巧
0x01 meterpreter简介 MetasploitFramework是一个缓冲区溢出测试使用的辅助工具,也可以说是一个漏洞利用和测试平台,它集成了各种平台上常见的溢出漏洞和流行的shellco ...
- Android字体设置
// 自定义字体custom = new TextView(this);//xx.ttf located at assets/fonts/typeface = Typeface.createFromA ...
- 6: Junit1_@Test
@Test注解是测试的基础,它提供了其他作用 1.指定将会抛出的异常类型,如果没有抛出异常或者抛出的一场不属于我们指定的类型,就会算是测试失败了. @Test(expected = RuntimeEx ...