【原创】MHA二次检测功能测试

时间:2021-01-12 14:59:22

MHA提供了很多扩展的功能,其中有一个参数是secondary_check_script,这个参数可以使我们自定义扩展多路由,多链路的二次检测功能。减少网络故障切换,降低脑裂的发生。

在虚拟机上做了如下测试,供大家参考。

5台服务器,MySQL版本5.7.18,角色如下:

Master(192.168.137.100)

Slave1(192.168.137.101)

Slave2(192.168.137.102)

MHA Manager(192.168.137.120)

Monitor1(192.168.137.103)

在配置文件中增加二次检测脚本

【原创】MHA二次检测功能测试

模拟测试:

【场景一】

MHA Manager与Master之间通讯中断

MHA Manager与Monitor1之间通讯正常,Monitor1与Master之间通讯正常

【原创】MHA二次检测功能测试

从日志中可以看到当MHA Manager与Master之间通讯中断,检测超时后,开始二次检测,MHA Manager

尝试通过连接其他的监控服务器(192.168.137.103)检测是否能建立到Master的55944端口的连接。如果可以连接成功,认为master还活着,不会发生failover。然后继续下一次检测。

【原创】MHA二次检测功能测试

【场景二】

MHA Manager与Master之间通讯中断

MHA Manager与Monitor1之间通讯中断,Monitor1与Master之间通讯正常

【原创】MHA二次检测功能测试

MHA Manager与Master和Monitor1之间的通讯全部中断,判断是网络问题,不发生failover,继续下一次检测。

【场景三】

MHA Manager与Master之间通讯恢复

MHA Manager与Monitor1之间通讯正常,Monitor1与Master之间通讯正常

【原创】MHA二次检测功能测试

MHA Manager与Master之间的通讯恢复,停止二次脚本的检测。

【场景四】

MHA Manager与Master之间通讯中断

MHA Manager与Monitor1之间通讯正常,Monitor1与Master之间通讯中断

【原创】MHA二次检测功能测试

MHA Manager及二次检测脚本中定义的其他Monitor服务器与Master都连接超时,发生failover。

【原创】MHA二次检测功能测试

其他公司关于二次检测的应用

1、魅族

【原创】MHA二次检测功能测试

2、安居客

【原创】MHA二次检测功能测试

3、美团点评

【原创】MHA二次检测功能测试

【原创】MHA二次检测功能测试