Mycat之——Mycat集群部署(基于HAProxy + Mycat)

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/75331934

一、软件版本

操作系统:CentOS-6.5-x86_64
JDK版本:jdk1.7.0_80
HAProxy版本:haproxy-1.5.19.tar.gz
Mycat版本:Mycat-server-1.5.1-RELEASE-20170717215510-linux.tar.gz (自行下载源码编译)
MySQL版本:mysql-5.6.32.tar.gz

二、部署规划

Mycat之——Mycat集群部署(基于HAProxy + Mycat)_第1张图片

三、Mycat集群部署架构图

Mycat之——Mycat集群部署(基于HAProxy + Mycat)_第2张图片

图解说明:
HAProxy负责将请求分发到Mycat上,起到负载均衡的作用,同时HAProxy也能检测到Mycat是否存活,HAProxy只会将请求转发到存活的Mycat上。如果一台Mycat服务器宕机,HAPorxy转发请求时不会转发到宕机的Mycat上,所以Mycat依然可用。

四、Mycat节点2的部署

Mycat主机2(liuyazhuang134,192.168.209.134)请参考《 Mycat之——Mycat在MySQL主从复制基础上实现读写分离》
注意:liuyazhuang133(192.168.209.133)和 liuyazhuang134(192.168.209.134) 中都要加上(或更新)主机名映射配置。

# vi /etc/hosts
192.168.209.131 liuyazhuang131
192.168.209.132 liuyazhuang132
192.168.209.133 liuyazhuang133
192.168.209.134 liuyazhuang134
192.168.209.135 liuyazhuang135

五、配置Mycat状态检查服务(在Mycat节点主机上配置)

Mycat服务主机(liuyazhuang133、liuyazhuang134)上需要增加Mycat服务的状态检测脚本,并开放相应的检测端口,以提供给HAProxy对Mycat的服务状态进行检测判断。可以使用xinetd来实现,通过xinetd,HAProxy可以用httpchk来检测Mycat的存活状态。(xinetd即extended internet daemon,xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器。经常用来管理多种轻量级Internet服务。xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。xinetd为linux系统的基础服务)

1、安装xinetd

如果xinetd还没有安装,可使用如下命令安装:

# yum install xinetd

2、添加 includedir /etc/xinetd.d

检查/etc/xinetd.conf的末尾是否有 includedir /etc/xinetd.d ,没有就加上

# vi /etc/xinetd.conf

3、创建/etc/xinetd.d 目录

检查 /etc/xinetd.d 目录是否存在,不存在则创建

# mkdir /etc/xinetd.d/

4、增加Mycat存活状态检测服务配置

# touch /etc/xinetd.d/Mycat_status
# vi /etc/xinetd.d/Mycat_status
增加以下内容:
service Mycat_status
{
flags = REUSE
## 使用该标记的socket_type为stream,需要设置wait为no
socket_type = stream ## 封包处理方式,Stream为TCP数据包
port = 48700 ## 服务监听端口
wait = no ## 表示不需等待,即服务将以多线程的方式运行
user = root ## 执行此服务进程的用户
server =/usr/local/bin/Mycat_status ## 需要启动的服务脚本
log_on_failure += USERID ## 登录失败记录的内容
disable = no ## 要启动服务,将此参数设置为no
}

5、添加 /usr/local/bin/Mycat_status 服务脚本

# touch /usr/local/bin/Mycat_status
# vi /usr/local/bin/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/local/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

6、给新增脚本赋予可执行权限

# chmod a+x /usr/local/bin/Mycat_status

7、在 /etc/services 中加入 mycat_status 服务

# vi /etc/services
在末尾加入:
mycat_status 48700/tcp # Mycat_status

保存后,重启xinetd服务

# service xinetd restart

8、验证mycat_status服务是否成功启动

# netstat -antup|grep 48700

能看到上图这样的信息,说明服务配置成功。

9、Mycat服务主机的防火墙上打开 48700端口

# vi /etc/sysconfig/iptables
增加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 48700 -j ACCEPT
保存后重启防火墙
# service iptables restart
脚本测试:
# /usr/local/bin/mycat_status

六、HAProxy介绍

时间不早了,明天继续写。。。




作者:l1028386804 发表于2017/7/19 0:08:15 原文链接
阅读:2 评论:0 查看评论

你可能感兴趣的:(mycat,mycat,集群)