1. 程式人生 > >阿里雲ECS伺服器下的Mycat高可用方案介紹與實戰

阿里雲ECS伺服器下的Mycat高可用方案介紹與實戰

前言

最近在做系統架構升級,其中之一是讓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

參考:https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-usagenotes-j2ee-concepts-managing-load-balanced-connections.html