暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MYsql 组复制

wzf0072 2025-06-25
25

 MYsql 组复制

从异步复制到半同步复制,MySQL提高了数据库的强一致性,2016年12月MySQL Group Replication(MGR,即组复制)的第一个GA版本正式发布于MySQL5.5.17中,MySQL组复制提供了高可用、高容错、高扩展、高灵活性的MySQL集群服务。

高一致性:基于原生复制及paxos协议的组复制技术,并以插件的方式提供,提供一致性数据安全保证。

高容错性:只要不是大多数节点坏掉就可以继续工作,有自动检测机制,当不同节点产生资源争用冲突时,按照先到者优先的原则处理,并且内置了自动化脑裂防护机制。

高扩展性:节点的新增和移除都是自动的,新节点加入后,会自动从其他节点同步状态,直到新节点和其他节点保持一致,如果节点被移除了,其他节点也会自动更新组信息。

高灵活性:有单主模式和多主模式,单主模式下会自动选主,所有更新都会在主库上进行,多主模式下,所有server都可以同时处理更新操作。

基于组的复制(Group-basedReplication)是一种被使用在容错系统中的技术。复制组是一个通过消息传递互相交互的server集群,通信层提供了原子消息(atomic message)和完全有序信息交互等保障机制。MySQL Group Replication正是基于这些技术和概念,实现了一种多主更新的复制协议。

复制组有多个server成员构成,组中的每个成员都可以独立的执行事务,而读写(RW)事务则会在于group内的其他节点进行协调之后再commit。只读事务(RO)不需要进行冲突检测,可以立即提交。换句话说,对于RW事务,在始发server上,当事务准备提交时,会自动在group内进行原子性的广播,告知其他节点变更了什么内容/执行了什么事务,冲突检测通过后,为该事务建立一个全局的顺序,这种原子广播的方式,也使得这个事务在每一个节点上都保持着同样顺序。因此,所有的server成员以相同的顺序应用相同的更改,以确保组内一致。

不同的节点上执行的事务之间可能存在资源争用的情况,这种现象容易出现在两个不同的并发事务上,假设在不同的节点上有两个并发事务,更新了同一行数据,那么就会发生资源争用。面对这种情况,Group Replication判定先提交的事务可以在所有server上提交,后提交的事务会在源server上回滚,最后丢弃掉。这就是分布式中的先提交当选规则。

 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论