MyCat高可用集群(五)基于HAProxy的MyCat高可用集群

MyCat高可用集群

第一章 MyCat的安装,实现数据读写分离

第二章 搭建MySQL双主双从服务器

第三章 数据库垂直拆分——分库

第四章 数据库水平拆分——分表

第五章 基于HAProxy的MyCat高可用集群

第六章 Mycat监控——Mycat-web



前言

前面搭建了双主双从服务的读写分离,实现了MySQL的高可用,但MyCat本身存在单点故障的可能。
因此我们可以使用HAProxy+Keepalived配合两台Mycat搭起Mycat集群,实现高可用性。HAProxy 实现了MyCat 多节点的集群高可用和负载均衡,而HAProxy 自身的高可用则可以通过Keepalived 来实现。
在这里插入图片描述


一、环境准备

六台CentOS7虚拟机
两台HAProxy:H1(主)、H2(备)
两台MyCat:MC1、MC2
两台mysql数据库:MS1、MS2

名称 主机名 IP
MyCat1 centos7_1 192.168.80.70
MyCat2 centos7_6 192.168.80.60
HAProxy1 centos7_4 192.168.80.40
HAProxy2 centos7_5 192.168.80.50
MySql1 centos7_2 192.168.80.20
MSql2 centos7_3 192.168.80.30

二、安装HAProxy

1、下载安装包

HAProxy下载地址:http://download.openpkg.org/components/cache/haproxy/
在这里插入图片描述

Keepalived下载地址:https://www.keepalived.org/download.html
在这里插入图片描述

2、安装HAProxy

#将下载好的HAProxy安装包传到服务器

#安装依赖
yum install -y gcc openssl-devel popt-devel

#解压
tar -zxvf haproxy-2.1.2.tar.gz

#进入解压后的目录
cd haproxy-2.1.2

#查看内核版本
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安装路径。

#安装
make install PREFIX=/usr/local/haproxy

可以echo $? 命令查看上一条命令执行情况,0表示正常执行

#安装完成后,创建目录
mkdir -p /usr/data/haproxy/

#创建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 192.168.80.70:8066 check inter 10s
		server mycat_2 192.168.80.60: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

在这里插入图片描述

3、验证HAProxy

#启动HAProxy
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.conf

#查看HAProxy进程
ps -ef|grep haproxy
在这里插入图片描述

#通过48066端口登录mycat
mysql -umycat -p123456 -P48066 -h 192.168.80.40
在这里插入图片描述

#打开浏览器访问,账号:admin,密码:123456
http://192.168.80.40:7777/admin
在这里插入图片描述

#这里可以看到我的两台mycat都是在线的(红色即为不在线)在这里插入图片描述
#同样的步骤在H2也做一遍


三、安装Keepalived

1、安装keepalived

#将下载好的Keepalived安装包传到服务器

#解压
tar -zxvf keepalived-2.1.2.tar.gz

#进入解压后的目录
cd keepalived-2.1.2

#编译安装
./configure --prefix=/usr/local/keepalived
make && make install

#复制配置文件

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

#修改配置文件
vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
    
    
	notification_email {
    
    
		[email protected]
	}
	notification_email_from [email protected]
	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 ens32
	virtual_router_id 51
	#数值越大优先级越高
	priority 100
	advert_int 1
	authentication {
    
    
		auth_type PASS
		auth_pass 1111
	}
	virtual_ipaddress {
    
    
	#虚拟IP
		192.168.80.200
	}
}

virtual_server 192.168.80.200 48066 {
    
    
	delay_loop 6
	lb_algo rr
	lb_kind NAT
	persistence_timeout 50
	protocol TCP
	real_server192.168.80.70 48066 {
    
    
		weight 1
		TCP_CHECK {
    
    
			connect_timeout 3
			retry 3
			delay_before_retry 3
		}
	}
	real_server 192.168.80.60 48600 {
    
    
		weight 1
		TCP_CHECK {
    
    
		connect_timeout 3
		nb_get_retry 3
		delay_before_retry 3
		}
	}
}

注意修改网卡名称和mycat服务器地址
在这里插入图片描述

#同样的步骤在H2也做一遍,注意修改BACKUP和优先级
在这里插入图片描述


2、验证keepalived

#启动Keepalived
systemctl start keepalived

#登录验证
mysql -umycat -p123456 -h 192.168.80.200 -P 48066

#查看orders表信息
use TESTDB;
select * from orders;
在这里插入图片描述

四、测试高可用

1、关闭Mycat

#关闭mycat1,查看运行状态
./mycat stop
./mycat status
在这里插入图片描述
#查询orders表,数据库仍正常运行
在这里插入图片描述

2、关闭HAProxy

#关闭H1的网络连接,模拟服务器宕机
在这里插入图片描述

#重新连接数据库
mysql -umycat -p123456 -h 192.168.80.200 -P 48066

#通过虚拟IP数据库仍可正常访问
在这里插入图片描述
#通过IP访问H1
mysql -umycat -p123456 -h 192.168.80.40 -P 48066
在这里插入图片描述

至此利用HAProxy实现MyCat高可用集群。


猜你喜欢

转载自blog.csdn.net/qq_44976923/article/details/111472277