Mysql集群及高可用-半同步模式(AFTER_SYNC)4

系列文章目录

Mysql集群及高可用-Io线程优化-半同步模式(AFTER_SYNC)


一、Mysql集群-半同步模式官方文档

官方文档

半同步优化的是Io线程


二、Mysql集群-半同步模式配置

如果需要永久固定写入到/etc/my.cnf即可
确保开机自启动即可

server1:

在master端装载模块,show plugins;
在这里插入图片描述在这里插入图片描述
server2、3:
在slave端装载模块
在这里插入图片描述
server1:

可以看见它的超时时间是10s,工作模式是AFTER_SYNC
生产环境建议超时时间设置无穷大

在这里插入图片描述
server2、3:

变量打开了
在这里插入图片描述
状态还没有打开,slave还没有激活

在这里插入图片描述
AFTER_SYNC是由io线程控制的,这个时候需要重启一下Io线程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
server3操作同理

server1:
在这里插入图片描述


三、测试

server1:
在这里插入图片描述
第一个红框是不是通过半同步方式(异步)完成的事件
第二个红框是通过半同步的方式完成的事件

在这里插入图片描述

server2、3:

在这里插入图片描述
把server2的io停掉
在这里插入图片描述
server1:

在这里插入图片描述
因为是a->b a->c,尽管server2关闭了,但是还有server3
所以它还是半同步复制
在这里插入图片描述

server3:

在这里插入图片描述

server2:

在这里插入图片描述


server1:

master认为只要有一个slave和我同步就行了
但是我们需要每个服务器都要是半同步,这样才能确保数据的一致性

需要设置参数,这个表示master要等待多少个slave,该数字和后端slave节点数量保持一致

在这里插入图片描述在这里插入图片描述在这里插入图片描述
客户端卡住了

在这里插入图片描述
server3数据同步了,server2没有,master在等待server2的ack,server2发送ack后,客户端才能写(或者过了设置的时间,没有设置时间,默认是10s变成异步模式)

等待10s后
在这里插入图片描述
这样的话,数据就不一致了

在这里插入图片描述


END

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值