数据的同步在mysql层面实现的,mycat不负责任何的数据同步,我们需要配置mysql的主从复制来实现数据的同步;
数据库的读写分离是mycat最常用的场景之一,我们的应用代码只需要关注业务代码,而不需要处理数据库读写、分片问题,这些都由Mycat实现,简化了开发;
读写分离往往伴随着高可用,而Mycat同时支持这两者;
那是不是就完美无缺了呢? 显然还有点小瑕疵,此时我们的Mycat是单点部署的,如果Mycat服务挂了,那么整个数据库端就挂了,整个应用也就不能正常服务了,那怎么办了? 很明显,我们需要实现Mycat的高可用,具体实现我们往下看。
keepalived实现Mycat高可用
centos7_1 (192.168.1.110)上搭建mycat
上篇博文中,我们搭建的读写分离各组件关系如下
此时还是单节点的mycat,我们还需要搭建一个mycat,搭建过程可以参考192.168.1.212上mycat的搭建,具体我就不演示了,搭建好之后各组件关系如下
昨天我们测试了master mysql宕机的情况,后续的DML SQL与Select SQL都是走的slave mysql,所以此时mysql的主从复制已经被破环、mycat的writeHost也切换到了192.168.1.211,我们需要重新配置mysql的主从复制,192.168.1.210仍是主,192.168.1.211回退为slave,并将192.168.1.212上mycat的writeHost进行还原(只需要将mycat/conf/dnindex.properties文件删了即可);生产环境不要这么处理,按上篇说的处理。
我们来看下测试结果
可以看到,192.168.1.110上的mycat与192.168.1.212上的mycat具有完全一样的功能,但此时两者还没有任何联系,彼此也互不