说MGR - 单独的通信机制
2019-09-08 19:44
621 查看
虽然MGR会使用Slave的通道,但只是使用这个通道的执行线程(Applier Thread)来执行Binlog Event,并没有使用这个通道来传输Binlog Event。MGR没有使用异步复制的Binlog Event传输机制,也不使用MySQL的服务端口来进行通信。MGR创建了一个独立的TCP端口来进行通信,各个MySQL服务器上的Group Replication插件通过这个端口连接在一起,两两之间可以直接通信。
Binlog Event的传输并不像异步复制那样是简单的点到点之间的传输。MGR在传输数据时,使用了Paxos协议。Paxos协议保证了数据传输的一致性和原子性。MGR基于Paxos协议构建了一个分布式的状态机复制机制,这是实现多主复制的核心技术。这个技术为MGR带来了3个主要优点,分别如下。
1.MGR中不会出现脑裂的现象(但要注意可能出现网络分区的情况,MGR根据参数group_replication_unreachable_majority_timeout=0/N设置的不同,行为稍有不同)。
2.MGR的冗余能力很好,能够保证Binlog Event至少被复制到超过一半的成员上,只要同时宕机的成员不超过半数便不会导致数据丢失。
3.MGR还保证只要Binlog Event没有被传输到半数以上的成员,本地成员不会将事务的Binlog Event写入Binlog文件和提交事务,从而保证宕机的服务器上不会有组内在线成员上不存在的数据。因此,宕机的服务器重启后,不再需要特殊的处理就可以加入组。
相关文章推荐
- Android笔记(三十) Android中线程之间的通信(二)Handler消息传递机制
- netlink---Linux下基于socket的内核和上层通信机制
- 笔记:Binder通信机制
- c#网络通信框架networkcomms内核解析之九 自定义处理方法的运行机制
- NameNode和DataNode通信机制
- Android 简单总结Binder通信机制
- IPC进程通信机制
- 详解AngularJS的通信机制
- React Native通信机制详解【转】
- java线程之间的通信(等待/通知机制)
- linux通信机制signal()函数详解
- Binder通信机制源码分析
- fuse用户态、内核态通信机制分析
- Aidl跨进程通信机制-android学习之旅(87)
- Android 进程通信机制之 AIDL
- 17_Android的通信机制Handler
- Standalone模式下Spark 中通信机制的源码分析
- 使用HTML5 的跨域通信机制进行数据同步
- IPC 三种通信机制
- 黑马程序员——线程间通信_等待唤醒机制