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集群部署架构图
图解说明:
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介绍
时间不早了,明天继续写。。。