(10)HAProxy+Keepalived 搭建 Mycat 集羣,實現高可用

我們可以使用 HAProxy + Keepalived 配合兩臺 Mycat 搭起 Mycat 集羣,實現高可用性。HAProxy

實現了 MyCat 多節點的集羣高可用和負載均衡,

而 HAProxy 自身的高可用則可以通過 Keepalived 來實現。

 

節點說明

節點

角色

外網ip

內網ip

ali-shuidi01

Mycat1

120.26.178.29

172.16.192.132

ali-shuidi02

Mycat2

120.26.178.29

172.16.192.133

ali-shuidi03

HAProxy(Master)+

Keepalived(Master)+

MySql(Master)

120.26.176.250

172.16.192.134

ali-shuidi04

HAProxy(backup)+

Keepalived(backup)+

MySql(backup)

120.26.176.175

172.16.192.135

假設有虛擬ip

   

120.26.174.134

172.16.192.136

 

 

1.ali-shuidi03,ali-shuidi04 MySQL主從複製搭建

 

2.在ali-shuidi01,ali-shuidi02分別安裝mycat,實現MySQL讀寫分離,主從複製

 

3.安裝配置 HAProxy,ali-shuidi03,ali-shuidi04 均執行以下操作

 

3.1 準備好HAProxy安裝包,傳到/opt目錄下

3.2 解壓到/usr/local/src

tar -zxvf haproxy-1.5.18.tar.gz -C /usr/local/src

 

3.3 進入解壓後的目錄,查看內核版本,進行編譯

cd /usr/local/src/haproxy-1.5.18/

 

[root@shuidi03 haproxy-1.8.5]# uname -r
3.10.0-693.2.2.el7.x86_64
make TARGET=linux310 PREFIX=/usr/local/haproxy ARCH=x86_64

# ARGET=linux310,內核版本,使用uname -r查看內核,如:3.10.0-693.2.2.el7.x86_64,此時該參數就爲linux310;

#ARCH=x86_64,系統位數;

#PREFIX=/usr/local/haprpxy #/usr/local/haprpxy,爲haprpxy安裝路徑。

 

3.4 編譯完成後,進行安裝

make install PREFIX=/usr/local/haproxy

3.5 安裝完成後,創建目錄、創建HAProxy配置文件

mkdir -p /usr/data/haproxy/
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
mode tcp
 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 172.16.192.132:8066 check inter 10s
 server mycat_2 172.16.192.133: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:123123
 stats hide-version
 stats admin if TRUE
 

 

3.6 啓動HAProxy

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.conf

 

3.7查看HAProxy進程

[root@shuidi03 haproxy]# ps -ef|grep haproxy
nobody   29577     1  0 23:29 ?        00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.conf
root     31209  3443  0 23:29 pts/2    00:00:00 grep --color=auto haproxy

 

3.8 打開瀏覽器訪問

http://120.26.176.250:7777/admin

 

在彈出框輸入用戶名:admin密碼:123123#如果Mycat主備機均已啓動,則可以看到如下圖

 

3.9 驗證負載均衡,通過HAProxy訪問Mycat

mysql -umycat -pzan123456 -h 172.16.192.134 -P 48066

 

 

4. 配置Keepalived ali-shuidi03,ali-shuidi04 均執行以下操作

4.1 準備好Keepalived安裝包,傳到/opt目錄下

 

4.2 解壓到/usr/local/src

tar -zxvf keepalived-1.4.2.tar.gz -C /usr/local/src

 

4.3 安裝依賴插件

yum install -y gcc openssl-devel popt-devel

 

4.4 進入解壓後的目錄,進行配置,進行編譯

cd /usr/local/src/keepalived-1.4.2

 

./configure --prefix=/usr/local/keepalived

 

4.5 進行編譯,完成後進行安裝

make && make install

 

4.6 運行前配置

cp /usr/local/src/keepalived-1.4.2/keepalived/etc/init.d/keepalived /etc/init.d/
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/src/keepalived-1.4.2/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

4.7 修改配置文件

vim /etc/keepalived/keepalived.conf

 

#修改內容如下

! Configuration File for keepalived

global_defs {
	notification_email {
		shizan666 @163.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 eth0
	virtual_router_id 51
	# 數值越大優先級越高
	priority 100
	advert_int 1
	authentication {
		auth_type PASS
		auth_pass 1111
	}
	virtual_ipaddress {
		#虛擬IP
		172.16 .192 .136
	}
}
virtual_server 172.16 .192 .136 48066 {
	delay_loop 6
	lb_algo rr
	lb_kind NAT
	persistence_timeout 50
	protocol TCP
	real_server 172.16 .192 .134 48066 {
		weight 1
		TCP_CHECK {
			connect_timeout 3
			retry 3
			delay_before_retry 3
		}
	}
	real_server 172.16 .192 .135 48600 {
		weight 1
		TCP_CHECK {
			connect_timeout 3
			nb_get_retry 3
			delay_before_retry 3
		}
	}
}

 

 

4.8 啓動Keepalived

service keepalived start

 

通過虛擬ip登錄訪問

mysql -umycat -pzan123456 -h 172.16.192.136 -P 48066

 

4.9 高可用測試,關閉其中一臺mycat,依舊可以通過虛擬ip訪問(因爲阿里雲測試環境,無法生成虛擬Ip,所以沒有測試到這一步)

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章