2020-03-18 Mysql常见的HA中间层架构mmm,pxc,mha

1、MMM结构(双主复制的结构)

Master-Master Replication Manager for MySQL 是一套脚本集合,用以监控、管理双主复制架构,通过设置一个可写的VIP和多个只读的VIP,完成故障自动转移、读负载分摊等功能;双主互为主从


MMM

存在问题:

通过vip实现漂移,不能跨网段,更不能跨机房

网络分区,导致数据库双写,数据冲突,需要业务修改数据或者重做

DBA部署和运维不方便,容易出问题(绑定vip,配置文件等)

使用binlog进行同步会有延时,如果写节点写操作过程中挂了,集群中其他节点无法访问挂掉的 写节点的binlog,就 无法同步这部分数据,导致数据丢失。

MMM的版本已不更新,谈不上对mysql新特性的支持

不适合于对数据一致性要求很高的场景。(异步复制,数据双写冲突)

VIP地址漂移原理?

1、MMM本身的monitor和agent提供了动态变更网卡IP绑定的功能(网卡可以绑定多个IP的呢)

2、借用keepalived的虚拟路由冗余协议,实现这种高可用的VIP机制(ARP表原理), 所以又有MM+Keepalived组合

明白了VIP地址漂移的道理,那么不能跨网段就显而易见了(多网段VIP没办法路由呢)。

官方网站:http://mysql-mmm.org

2、PXC结构

Percona XtraDB Cluster是一个为MySQL用户提供高可用性和伸缩性的解决方案,采用ZK作为中央控制模块。

GTID:Global Transaction ID    全局事务唯一id

PXC

1、同步复制,事务要么在所有节点提交或不提交,一致性高。(一半以上结点OK则事务成功,高可用)

2、多主复制,可以在任意节点进行写操作,当然也可以读。

一致性最高,但是QPS相对受限。

官网:https://www.percona.com/doc/percona-xtradb-cluster/LATEST/index.html


2、mha结构

MHA(Master High Availability)是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。

组成部分:

1.MHA manager,管理节点

2.MHA node,数据节点

部署架构:

MHA manager可以单独部署在一台机器上,管理多个master-slave集群,也可以单独部署在一个slave节点上。MHA manager探测集群的node节点,当发现master故障时,会选取拥有最新数据的slave提升为新的master,然后将其他的slave导向新的master节点,并完成数据的同步,整个故障转移过程对于客户端应用程序来说是完全透明的。


MHA

原理介绍:

MHA的目的在于维持MySQL Replication中Master库的高可用性,其最大特点是可以修复多个Slave之间的差异日志,最终使所有Slave保持数据一致,然后从中选择一个充当新的Master,并将其它Slave指向它。

当master出现故障时,可以通过对比slave之间I/O thread 读取主库binlog的position号,选取最接近的slave做为备选主库(备胎)。其它的从库可以通过与备选主库对比生成差异的中继日志。在备选主库上应用从原来master保存的binlog,同时将备选主库提升为master。最后在其它slave上应用相应的差异中继日志并开始从新的master开始复制。

过程:

(1)从宕机崩溃的master保存二进制日志事件(binlog events);

(2)识别含有最新更新的slave,作为备选主库;

(3)对比备选主库和其他slave,生成差异的中继日志(relay log);

(4)应用从master保存的二进制日志事件(binlog events)到备选主库;

(5)提升提升备选主库为新的master主库;

(6)在其他slave上应用差异中继日志(relay log);

(6)使其他的slave连接新的master进行复制;

优点:

1. 故障切换时,可以自行判断哪个从库与主库的数据最接近,就切换到上面,可以减少数据的丢失,保证数据的一致性

2. 支持 binlog server,可提高 binlog 传送效率,进一步减少数据丢失风险。

3. 可以配置 mysql 5.7 的增强半同步,来保证数据的时时同步

在MHA自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据的不丢失,但这并不总是可行的。例如,如果主服务器硬件故障或无法通过ssh访问,MHA没法保存二进制日志,只进行故障转移而丢失了最新的数据。使用MySQL 5.5的半同步复制,可以大大降低数据丢失的风险。MHA可以与半同步复制结合起来。如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性。

Manager若自身需要是高可用的,且保证对各个机房的可达性。

另外,可自定义开发哨兵Sentinel集群替代Manager。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容