MyCat高可用集群搭建

一,环境准备

    * MyCat

    * Haproxy

    * Keepalived

    * xinetd

二,安装

    1, Haproxy安装参考rabbitmq

    2, Keepalived安装参考nginx

    3,MyCat安装

// 安装包解压
[root@slave_2 ~]# tar /usr/myapp/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/develop/
// 服务启动
[root@slave_2 mycat]# ./bin/mycat start
// 客户端连接, -P表示mycat默认端口
[root@slave_2 mycat]# ../mysql/bin/mysql -uroot -p123456 -P8066 -h192.168.91.130

    4,xinetd安装

       * 可以直接通过yum命令安装,如果yum可以安装成功,可以只关心配置文件部分

yum install -y xinetd

        * 服务安装

// 解压
[root@slave_1 myapp]# tar -zxvf xinetd-2.3.15.tar.gz -C /usr/develop/xinetd/
// 编译
[root@slave_1 xinetd-2.3.15]# ./configure --prefix=/usr/develop/xinetd/
// 安装
[root@slave_1 xinetd-2.3.15]# make && make install

       * 复制配置文件到/etc下

[root@slave_1 xinetd-2.3.15]# cp contrib/xinetd.conf /etc/

        * 在配置属性includedir /etc/xinetd.d路径下增加mycat存活状态检测配置

[root@slave_1 xinetd.d]# vim mycat_status
service mycat_status
{
    flags = REUSE
    # socket连接方式
    socket_type = stream
    # 服务监听的端口
    port = 48700
    # 是否并发
    wait = no
    # 以什么用户进行启动
    user = root
    # 被托管服务的启动脚本
    server =/usr/develop/xinetd/sbin/mycat_status
    # 设置失败时,UID添加到系统登记表
    log_on_failure += USERID
    #是否禁用托管服务,no表示开启托管服务
    disable = no
}

        * 在server标注路径下添加服务脚本

[root@slave_1 sbin]# vim mycat_status
#!/bin/bash
#/usr/local/bin/mycat_status.sh
# This script checks if a Mycat server is healthy running on localhost.
# It will return:
# "HTTP/1.x 200 OK\r" (if Mycat is running smoothly)
# "HTTP/1.x 503 Internal Server Error\r" (else)
Mycat=`/usr/develop/mycat/bin/mycat status | grep 'not running' | wc -l`
if [ "$Mycat" = "0" ]; then
/bin/echo -e "HTTP/1.1 200 OK\r\n"
else
/bin/echo -e "HTTP/1.1 503 Service Unavailable\r\n"
fi

        * 通过sh执行脚本,确保脚本正确

        * 以上两个脚本都要添加权限

chmod +x /etc/xinetd.d/mycat_status
chmod +x /usr/develop/xinetd/sbin/mycat_satus

        * 修改/etc/services文件,末尾加入信息

mycat_status 48700/tcp # mycat_status

        * 修改xinetd启动文件,修改启动路径

[root@slave_1 contrib]# cd /usr/develop/xinetd/xinetd-2.3.15/contrib/
[root@slave_1 contrib]# vim xinetd

        * 创建软连接,方便后续service启动

[root@slave_1 contrib]# ln -s /usr/develop/xinetd/xinetd-2.3.15/contrib/xinetd /usr/sbin/xinetd
[root@slave_1 contrib]# cp xinetd /etc/init.d/

        * 添加开机启动

[root@slave_1 contrib]# chkconfig --add xinetd

         * 检测48700端口是否正常启动

netstat -antup|grep 48700

 三,Haproxy配置

    1,三台机器上分别添加mycat服务和管理信息配置

listen mycat_cluster
	bind 192.168.91.128:8096 ##转发到 mycat 的 8066 端口,即 mycat 的服务端口
	mode tcp
	option tcplog
	option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www
	balance roundrobin
	server   master 192.168.91.128:8066 check port 48700 inter 5s rise 2 fall 3
	server   slave_1 192.168.91.129:8066 check port 48700 inter 5s rise 2 fall 3
	server   slave_2 192.168.91.130:8066 check port 48700 inter 5s rise 2 fall 3
	timeout server 20000

listen mycat_admin
	bind 192.168.91.128:8097 ##转发到 mycat 的 9066 端口,即 mycat 的管理控制台端口
	mode tcp
	option tcplog
	option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www
	balance roundrobin
	server   master 192.168.91.128:9066 check port 48700 inter 5s rise 2 fall 3
	server   slave_1 192.168.91.129:9066 check port 48700 inter 5s rise 2 fall 3
	server   slave_2 192.168.91.130:9066 check port 48700 inter 5s rise 2 fall 3
	timeout server 20000

四,Keepalived配置

      * keepalived只对haproxy进行配置,与rabbitmq一致!

五,通过VIP连接mycat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值