mycat-06- HA机制的Mycat高可用

Mycat高可用

在对mycat 进行读写分离,双主双倍,实现HA后,
在实际项目中, Mycat 服务也需要考虑高可用性,如果 Mycat 所在服务器出现宕机,或 Mycat 服务故障,需要有备机提供服务,需要考虑 Mycat 集群。

高可用方案

我们可以在多台机器上安装Mycat 搭起 Mycat 集群,配合 HAProxy实现负载均衡,实现高可用性。
服务器规划

编号角色IP 地址
1Mycat1vm1:8066
2Mycat2vm2:8066
3HAProxyvm3:48066

安装配置 HAProxy

1. 安装HAProxy

#1. 下载 haproxy-1.7.12 至 /opt
[root@vm3 opt]# wget http://www.haproxy.org/download/1.7/src/haproxy-1.7.12.tar.gz

#2. 解压到/usr/local/src
[root@vm3 opt]# tar -zxvf haproxy-1.7.12.tar.gz -C /usr/local/src

#3进入解压后的目录,查看内核版本, 进行编译
[root@vm3 src]# cd haproxy-1.7.12/

[root@vm3 haproxy-1.7.12]# uname -r
3.10.0-1062.el7.x86_64

# ARGET=linux310,内核版本,使用uname -r查看内核,如: 3.10.0-514.el7,此时该参数就为linux310;
#ARCH=x86_64,系统位数;
#PREFIX=/usr/local/haprpxy #/usr/local/haprpxy,为haprpxy安装路径。
[root@vm3 haproxy-1.7.12]# make TARGET=linux310 PREFIX=/usr/local/haproxy ARCH=x86_64

#4编译完成后,进行安装
[root@vm3 haproxy-1.7.12]# make install PREFIX=/usr/local/haproxy

2配置

#安装完成后, 创建目录、 创建HAProxy配置文件
[root@vm3 haproxy-1.7.12]# mkdir -p /usr/data/haproxy/
[root@vm3 haproxy-1.7.12]# 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 vm1:8066 check inter 10s
        server mycat_2 vm2:8066 check inter 10s
#  绑定多个ip
#   bind :43306
#        mode tcp
#        balance roundrobin
#        server mysql_1 vm1:3306 check inter 10s
#        server mysql_2 vm2:3306 check inter 10s

## haproxy管理页面 端口,contextpath, 用户名/密码
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.启动

#1. 启动
[root@vm3 haproxy]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.conf

#2. 查看haproxy进程
[root@vm3 haproxy]# ps -ef|grep haproxy

4.验证
通过frontend访问
在这里插入图片描述
通过HAProxy访问Mycat

[root@vm1 jhs]# mysql -umycat -p123456 -P 48066 -h vm3

配置 Keepalived

HAProxy实现了 MyCat 多节点的集群高可用和负载均衡, 而 HAProxy 自身的高可用则可以通过 Keepalived 来实现高可用。

服务器规划

编号角色IP 地址
1Mycat1vm1
2Mycat2vm2
3HAProxy(master)vm3
4Keepalived(master)vm3
5HAProxy(backup)vm4
6Keepalived(backup)vm4

架构图
在这里插入图片描述

0.在vm4上安装haproxy(略)
1. 安装KeepAlived

keepalived下载页

#1准备好Keepalived安装包,传到/opt目录下
#2解压到/usr/local/src
[root@vm3 opt]# tar -zxvf keepalived-1.4.2.tar.gz -C /usr/local/src

#3安装依赖插件
[root@vm3 opt]# yum install -y gcc openssl-devel popt-devel

#3进入解压后的目录, 进行配置, 进行编译
[root@vm3 opt]# cd /usr/local/src/keepalived-1.4.2
[root@vm3 keepalived-1.4.2]# ./configure --prefix=/usr/local/keepalived

#4进行编译, 完成后进行安装
[root@vm3 keepalived-1.4.2]# make && make install

#5运行前配置
[root@vm3 keepalived-1.4.2]# cp keepalived/etc/init.d/keepalived /etc/init.d/
[root@vm3 keepalived-1.4.2]# mkdir /etc/keepalived
[root@vm3 keepalived-1.4.2]#  cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
[root@vm3 keepalived-1.4.2]# cp keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@vm3 keepalived-1.4.2]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

2.修改keepalived配置

! 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

	#是Keepalived服务器的路由标识在一个局域网内,这个标识(router_id)是唯一的
	router_id 1
	vrrp_skip_check_adv_addr
	vrrp_garp_interval 0
	vrrp_gna_interval 0
}

vrrp_instance VI_1 {
	#主机配MASTER,备机配BACKUP
	state MASTER
	#所在机器网卡
	interface ens33

	#虚拟路由ID标识,这个标识最好是一个数字,在一个keepalived.conf配置中是唯一的, MASTER和BACKUP配置中相同实例的virtual_router_id必须是一致的.
	virtual_router_id 51

	#数值越大优先级越高
	priority 100

	#为同步通知间隔。MASTER与BACKUP之间通信检查的时间间隔,单位为秒,默认为1.
	advert_int 1
	
	#authentication为权限认证配置不要改动,同一vrrp实例的MASTER与BACKUP使用相同的密码才能正常通信。
	authentication {
		auth_type PASS
		auth_pass 1111
	}
	virtual_ipaddress {
		#虚拟IP
		192.1.217.200
	}
}

### 通过虚拟IP 暴露的端口
virtual_server 192.1.217.200 48066 {
	delay_loop 6
	lb_algo rr
	lb_kind NAT
	persistence_timeout 50
	protocol TCP
	real_server vm3 48066 {  #RS节点1
		weight 1	#权重
		TCP_CHECK {
			connect_timeout 3
			retry 3
			delay_before_retry 3
		}
	}

	real_server vm4 48066 {	#RS节点2
		weight 1
		TCP_CHECK {
			connect_timeout 3
			nb_get_retry 3
			delay_before_retry 3
		}
	}
}

3.启动验证

#1启动Keepalived
service keepalived start

#2登录验证 --- 使用虚拟IP(vip)+端口 访问mycat --- 成功
mysql -umycat -p123456 -h 192.1.217.200 -P 48066

4. keepalived主备–配置
只列出同master不同部分的配置:

global_defs {
	router_id 2    			#此参数和MASTER不同
} 

vrrp_instance VI_1 {  		# MASTER相同
	state BACKUP 			# 设置为BACKUP,与MASTER不同
	virtual_router_id 51 	# MASTER相同
	priority 99				# 此参数和MASTER不同, 略低于master

	virtual_ipaddress {
		#虚拟IP  ---相同
		192.1.217.200
	}
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值