Mycat 之 基于HA机制的Mycat高可用

如果mycat所在服务器出现宕机或mycat服务故障,需要有备机提供服务,需要考虑mycat集群。

高可用方案

使用HAProxy+Keepalived配合两台mycat搭起mycat集群,实现高可用。HAProxy实现了mycat多节点的集群高可用和负载均衡,而HAProxy自身的高可用则可以通过Keepalived来实现。

一、准备机器

编号角色IP地址机器名
1Mycat1192.168.157.133master131
2Mycat2192.168.157.139master139
3HAProxy(master)192.168.157.138master138
4Keepalived(master)192.168.157.138master138
5HAProxy(backup)192.168.157.135master135
6Keepalived(backup)192.168.157.135master135

二、安装HAProxy 【master】

1、下载并解压。我是直接翻墙下到本地,然后传到虚拟机上的。

官网下载【国外】  国内下载   资源下载

cd /opt
#上传文件
rz

#解压到/usr/local/src
tar -zxvf haproxy-2.3.1.tar.gz -C /usr/local/src

#查看内核版本
uname -r

2、编译

cd /usr/local/src/haproxy-2.3.1/

make TARGET=linux310 PREFIX=/usr/local/haproxy ARCH=x86_64

注:

TARGET=linux310,内核版本

ARCH=x86_64,系统位数

PREFIX=/usr/local/haproxy,haproxy安装路径

3、安装

make install PREFIX=/usr/local/haproxy

4、创建目录、配置文件

mkdir -p /usr/data/haproxy/

vim /usr/local/haproxy/haproxy.conf

5、写入配置信息并保存

#全局配置信息
global
    log 127.0.0.1 local0
    #log 127.0.0.1 local1 notice
    #log loghost local0 info
    maxconn 4096
    chroot /usr/local/haproxy #haproxy目录
    pidfile /usr/data/haproxy/haproxy.pid #存进程id的文件
    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.157.133:8066 check inter 10s #指定mycat服务机器
        server mycat_2 192.168.157.139: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

6、启动mycat服务和HAProxy服务并验证

#启动mycat服务
mycat console

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

#查看HAProxy进程
ps -ef|grep haproxy

#打开浏览器访问
http://192.168.157.138:7777/admin
name:admin pwd:123123

#验证负载均衡,通过HAProxy访问mycat
mysql -umycat -p123456 -h 192.168.157.138 -P 48066

如果mycat主备机均已启动,则看到下图

如果mycat主机启动备机未启动,则如下图

如果mycat主备机均未启动,则看到下图

问题:

在浏览器里打不开http://192.168.157.138:7777/admin 这个地址,然后发现138机器上开着iptables服务了,关掉就可以了。

三、安装Keepalived 【master】

1、下载并安装 官网连接

#下载
wget https://www.keepalived.org/software/keepalived-2.1.0.tar.gz

#解压到/usr/local/src
tar -zxvf keepalived-2.1.0.tar.gz -C /usr/local/src

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

#进入解压后的目录,进行配置
cd /usr/local/src/keepalived-2.1.0/
./configure --prefix=/usr/local/keepalived

#编译并安装
make
make install

2、运行前配置

cp /usr/local/src/keepalived-2.1.0/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-2.1.0/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

3、修改配置文件

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 ens33
    virtual_router_id 51
    #数值越大优先级越高
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
   virtual_ipaddress {
        #虚拟IP,保护HA
        192.168.157.220
    }
}

#以下可省略
virtual_server 192.168.157.220 48066 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP
    real_server 192.168.157.135 48066 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.157.138 48066 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

扩展

#清空文件内容

#显示行号
:set nu

#到最后一行
shift+G

#回到第一行
1+shift+G

#删除
:d158

#隐藏行号
set nonu

4、启动验证

#启动Keepalived
service keepalived start

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

四、安装HAProxy Keepalived 【backup】

重复 二、安装HAProxy 【master】三、安装Keepalived 【master】

五、测试高可用

在Mycat2上通过虚拟ip查询数据,然后关闭Mycat1的mycat服务,再查询数据

mysql -umycat -p123456 -h 192.168.157.220 -P 48066

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值