首页 > 其他 > 详细

MGR架构~原理细节分析(8.0最新版)

时间:2020-06-04 15:34:28      阅读:113      评论:0      收藏:0      [点我收藏+]

 

一  新主选择机制

   1 当主节点宕掉,自动会根据服务器的server_uuid变量和group_replication_member_weight变量值,选择下一个slave谁作为主节点,group_replication_member_weight的值最高的成员被选为新的主节点,

   2 在group_replication_member_weight值相同的情况下,group根据数据字典中 server_uuid排序,排序在最前的被选择为主节点

  3 如果原主需要下线进行维护,那么可以直接stop复制,如果有目标新主,预先调整好权重即可.新主会进行识别

二 集群节点数量

 1 一旦集群故障的节点超过阈值,整个集群变会被挂起,成为只读的状态,比如 3个节点,一旦挂掉2个 就会导致集群只读

    计算方式 2n+1=total, n为故障节点的阈值

三 集群节点状态

    ONLINE              表示该节点可正常提供服务

    RECOVERING    表示当前节点正在从其他节点恢复数据(也有可能处于错误状态)

    OFFLINE            表示GR插件已经加载,但是该节点不属于任何一个GR组

    ERROR               表示节点在recovery阶段或者从其他节点同步状态中出现错误

    UNREACHABLE  表示节点处于不可达状态,无法与之发生网络通讯

    只有ONLINE和RECOVERING两种状态会在集群中得到同步

四  集群节点延时

  组复制的延迟对集群是有影响的,一旦出现延迟(默认延迟25000个事务),则启动流量控制(Flow Control),每个周期性能衰减当前的10%,直到集群不可用(但集群节点状态为online),单个节点慢整个集群全慢。

五 写集合

    1 写集合由主键+binlog_event和其他一些信息进行封装,然后广播送到其他节点进行验证

   2  全局构建的hash_map用来验证写集合是否冲突

 六 整体过程

   0 MGR 在主节点执行事务,形成写集合并且按照顺序广播发送到各个成员

   1  从节点进行冲突验证,验证通过后

       1 所有节点都会将日志写入磁盘binlog中(io_thread)

       2  主节点反馈给客户端,代表事务提交 

       3 从节点进行应用队列的应用(sql_thread)

七  MGR 本身限制

 1 具有主键的innodb表(不能带有外键)

 2 针对以下的要求限制

   1 事务不能太大

   2 网络通讯要稳定,最好是同一机房内 

   3 成员硬件配置必须保持一致 

   4 最好是RC的环境

3 只支持IPV4段

4 仅仅是集群写的强一致性,但是可能读会有延时

5 非可用性:

   1 当节点成员存活少于 2n+1的成员时,集群属于不可写状态

   2 当集群本身并发数量太高时,会触发流控机制,这时集群也属于不可用状态

6 多主条件下的限制

  1 针对同一对象但是不同实例的并发DML操作,在DDL操作执行完前,是有风险的,会存在 未检测到不同实例执行冲突的DDL语句风险

  2 不支持同一对象但是不同实例的并发DDL操作

 

技术分享图片

 

MGR架构~原理细节分析(8.0最新版)

原文:https://www.cnblogs.com/danhuangpai/p/13042041.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!