在實際項目中,Mycat 服務也須要考慮高可用性,若是 Mycat 所在服務器出現宕機,或 Mycat 服務故障,須要有備機提供服務,須要考慮 Mycat 集羣。html
1.高可用方案mysql
使用 HAProxy + Keepalived 配合兩臺 Mycat 搭起 Mycat 集羣,實現高可用性。HAProxy 實現了 MyCat 多節點的集羣高可用和負載均衡,而 HAProxy 自身的高可用則能夠經過 Keepalived 來實現。linux
編號redis |
角色sql |
IP地址vim |
機器名瀏覽器 |
1服務器 |
Mycat1負載均衡 |
192.168.188.188frontend |
host79.pluto |
2 |
Mycat2 |
192.168.188.189 |
host80.pluto |
3 |
HAProxy(master) |
192.168.188.190 |
host81.pluto |
4 |
Keepalived(master) |
192.168.188.190 |
host81.pluto |
5 |
HAProxy(backup) |
192.168.188.191 |
host82.pluto |
6 |
Keepalived(backup) |
192.168.188.191 |
host82.pluto |
2.安裝配置HAProxy
#1、準備好HAProxy安裝包,傳到/opt目錄下
#2、解壓到/usr/local/src tar -zxvf haproxy-1.5.18.tar.gz -C /usr/local/src
#3、進入解壓後的目錄,查看內核版本,進行編譯 cd /usr/local/src/haproxy-1.5.18 uname -r make TARGET=linux310 PREFIX=/usr/local/haproxy ARCH=x86_64 # ARGET=linux310,內核版本,使用uname -r查看內核,如:3.10.0-514.el7,此時該參數就爲linux310; #ARCH=x86_64,系統位數; #PREFIX=/usr/local/haprpxy #/usr/local/haprpxy,爲haprpxy安裝路徑。
#4、編譯完成後,進行安裝 make install PREFIX=/usr/local/haproxy
#5、安裝完成後,建立目錄、建立HAProxy配置文件 mkdir -p /usr/data/haproxy/ vim /usr/local/haproxy/haproxy.conf
#6向配置文件中插入如下配置信息,並保存 |
[1].安裝HAProxy
(1).準備好HAProxy安裝包,傳到/opt目錄下
http://www.haproxy.org/download/1.5/src/ [root@host81 /]# cp /mnt/hgfs/VMShare/haproxy-1.5.18.tar.gz /opt/ |
(2).解壓到/usr/local/src
[root@host81 opt]# tar -zxvf haproxy-1.5.18.tar.gz -C /usr/local/src/ |
(3).進入解壓的目錄,查看內核版本,進行編譯
[root@host81 ~]# cd /usr/local/src/haproxy-1.5.18/ [root@host81 haproxy-1.5.18]# uname -r 2.6.32-642.el6.x86_64 [root@host81 haproxy-1.5.18]# make TARGET=linux26 PREFIX=/usr/local/haproxy ARCH=x86_64 # ARGET=linux26,內核版本,使用uname -r查看內核,如:2.6.32-642.el6.x86_64 ,此時該參數就爲linux26; #ARCH=x86_64,系統位數; #PREFIX=/usr/local/haprpxy #/usr/local/haprpxy,爲haprpxy安裝路徑。 |
(4).編譯完成後,進行安裝
[root@host81 haproxy-1.5.18]# make install PREFIX=/usr/local/haproxy |
(5).安裝完成後,建立目錄、建立HAProxy配置文件
[root@host81 haproxy-1.5.18]# mkdir -p /usr/data/haproxy/ [root@host81 haproxy-1.5.18]# vim /usr/local/haproxy/haproxy.conf global log 127.0.0.1 local0 #log 127.0.0.1 local1 notice #log loghost local0 info maxconn 4096 chroot /usr/local/haproxy pidfile /usr/data/haproxy/haproxy.pid uid 99 gid 99 daemon #debug #quiet
defaults log global modetcp option abortonclose option redispatch retries 3 maxconn 2000 timeout connect 5000 timeout client 50000 timeout server 50000
listen proxy_status bind :48066 mode tcp balance roundrobin server mycat_1 192.168.140.188:8066 check inter 10s server mycat_2 192.168.140.189:8066 check inter 10s
frontend admin_stats bind :7777 mode http stats enable option httplog maxconn 10 stats refresh 30s stats uri /admin stats auth admin:123456 stats hide-version stats admin if TRUE |
[2].啓動驗證
(1).啓動HAProxy
[root@host82 haproxy]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.conf |
(2).查看HAProxy進程
[root@host82 haproxy]# ps -ef | grep haproxy nobody 18545 1 0 15:13 ? 00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.conf root 18547 16893 0 15:13 pts/0 00:00:00 grep haproxy |
(3).打開瀏覽器訪問
http://192.168.188.191:7777/admin #在彈出框輸入用戶名:admin密碼:123456 #若是Mycat主備機未啓動,則能夠看到以下圖 |
(4).驗證負載均衡
3.安裝配置Keepalived
[1].安裝Keepalived
(1).準備好Keepalived安裝包,傳到/opt目錄下
https://www.keepalived.org/download.html |
(2).解壓到/usr/local/src
tar -zxvf keepalived-1.4.2.tar.gz -C /usr/local/src |
(3).安裝依賴插件
yum install -y gcc openssl-devel popt-deve |
(4).進入解壓後的目錄,進行配置,進行編譯安裝
cd /usr/local/src/keepalived-1.4.2 ./configure --prefix=/usr/local/keepalived make && make install |
(5).運行前配置
cp /usr/local/src/keepalived-1.4.2/keepalived/etc/init.d/keepalived /etc/init.d/ mkdir /etc/keepalived cp /usr/local/keepalive/etc/keepalived/keepalived.conf /etc/keepalived/ cp /usr/local/src/keepalived-1.4.2/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ cp /usr/local/keepalive/sbin/keepalived /usr/sbin/ |
(6).配置文件修改
vim /etc/keepalived/keepalived.conf
#修改內容以下 ! Configuration File for keepalived global_defs { notification_email { xlcocoon@foxmail.com } notification_email_from keepalived@showjoy.com smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { #主機配MASTER,備機配BACKUP state MASTER #所在機器網卡 interface eth1 virtual_router_id 51 #數值越大優先級越高 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { #虛擬IP 192.168.188.200 } } virtual_server 192.168.188.200 48066 { elay_loop 6 lb_algo rr lb_kind NAT persistence_timeout 50 protocol TCP real_server 192.168.188.190 48066 { weight 1 TCP_CHECK { connect_timeout 3 retry 3 delay_before_retry 3 } } real_server 192.168.188.191 48600 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } }
}
|
[2].啓動驗證
#1啓動Keepalived service keepalived start
#2登陸驗證 mysql -umycat -p123456 -h 192.168.140.200 -P 48066 |
4.測試高可用
#1關閉mycat #2經過虛擬ip查詢數據 mysql -umycat -p123456 -h 192.168.140.200 -P 48066 |