MySQL组复制(MGR)全解析 Part 2 常用复制技术介绍
这期的专题我们来介绍MySQL组复制相关的内容
MGR包含一个故障检测的机制来发现和报告哪些服务器silent或者dead
故障检测器(failure detector)是一个分布式的服务,用来为哪些服务器故障(怀疑)提供信息
一个服务器被怀疑意味这该服务器无响应(mute)
当服务器A在一段时间内为收到服务器B的信息,一个超时异常发生并且服务器B会被标记为 suspicion状态,这意味着,组内其他的成员服务器会协调将其踢出复制组
如果一个服务器无法和其余的服务器通信,则他会怀疑其他服务器都故障了.
由于其服务器和组内其他服务器达成一致,它自身的怀疑是没有结果的,这时他无法执行任何本地事务
MGR提供一个组成员关系服务(group membership service )来定义服务器的在线状态以及是否参与组
该关系可以查看视图来获得,该服务保证任何时间查询的视图是一致的
他成员添加到组和移除出组时会更新该视图,这个过程叫做重配置(reconfiguration)
重新配置过程中需要大多数节点同意,即组内故障服务器低于大多数,否则视图无法更新且会阻塞事务的执行以防止脑裂的发生
这时就需要人为的干预了
MGR利用 Paxos分布式算法来协调组内成员,他需要组内到多数服务器在线以达到仲裁成员数从而进行决断
例如我们需要容忍f个服务器故障,则组内至少有2 x f + 1个成员
https://dev.mysql.com/doc/refman/5.7/en/group-replication-details.html
觉得文章不错的欢迎关注,转发,收藏~