我们对mysql双主+keepalived高可用做了一下测试,
mysql做了gtid多线程复制,也做了优化,最后我们的目的是看看,这种高可用在高并发高负载的情况下,down机一台,最后看看两者之间的数据是否一致性,经过几次测试,
我们让开发写了一小段程序,持续往数据库中写数据,
我们找了大概6,7台客户端,同时去想数据库写数据,每个客户端30个线程,
然后在将一台mysql关机,看最后的效果,
其中一台关机,另一台持续写数据,down机的一台在数据写完之前启动起来,而且这台机器上面keepalived要是不抢占master,那么最后的数据是一致的,成功的,当然是有数据丢失但是一致性保证了,在这台机器恢复的时候都回去同步log日志,我们彼此都查看的中短时的数据间隔。。
同样的测试,不过这一次是枪战模式的,最后显示数据完全乱了,严重破坏了数据的一致性,以至于主主模式都发生故障,
后来几次通过拔网线的方法也测试了几次
结论:在高并发高负载的情况下,mysql主主+keepalived最好是不抢占模式。这样才会保证真正的高可用