(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,所以没有测试到这一步)

 

 

 

 

 

 

 

 

 

 

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