前言
最近在做系统架构升级,其中之一是让mycat集群化,达到高可用的目的,不然单点故障这把达克摩斯之剑悬在头顶,晚上都睡不安稳。
以下为调研的几套方案。
方案分析
HaProxy+Keepalived
这套方案是mycat官方推荐的方案。
构造虚拟ip,keepalived抢占ip,对应的HaProxy提供服务;看起来很美,但是阿里云不支持浮动ip。我们否决了此方案。
SLB
有个哥们踩到了阿里云SLB的坑
参考:https://www.jianshu.com/p/4c4641d4a566
Mycat-Balance
据说是早期mycat旗下的组件,但缺少维护人员,不久就荒废了。我们否决了此方案。
自定义一套软负载中间件
这个方案比较耗时间,而且需要经过严格的测试才能投入生产环境,但现在恰恰缺的就是时间。我们否决了此方案。
Mycat 2.0
这是mycat新开放的版本,处于测试阶段,对于稳定性我们尚有疑虑。我们否决了此方案。
基于MySql Connector/J java连接器的LoadBalancing协议,进行负载均衡
这是mysql的连接协议,具有失效重连功能。最终我们选定了此方案。
注:低版本jar包不支持此协议,我这里用的是:mysql-connector-java-5.1.41.jar
格式:
jdbc:mysql:loadbalance://192.168.48.128:8066,192.168.48.129:8066/market_activity?useUnicode=true&characterEncoding=utf-8&zerodatetimebehavior=converttonull&allowMultiQueries=true