继续分享mysql高可用集群搭建的内容,前面介绍了haproxy安装部署部分,今天主要介绍安装xinetd服务及相关脚本来检测mycat是否存活。
架构图:
运作理解:主机1与主机2上的keepalived会为该服务器抢占vip,抢占到vip后,对该主机的访问可以通过原来的ip访问,也可以直接通过vip访问,当其中一台宕机时,vip会漂移到另一台机器上,当我们访问VIP时haproxy会根据配置将请求分发到两台Mycat上实现负载均衡,并且haproxy会检测mycat是否存活。
在Mycat server1 Mycat server2上都需要添加检测端口48700的脚本,为此需要用到xinetd,xinetd为linux系统的基础服务,在xinetd目录下面增加脚本与端口的映射配置文件。
1、安装xinetd服务
yum install xinetd -y
2、修改配置
# vim /etc/xinetd.d/mycat_status
======================================
service mycat_status
{
flags = REUSE
socket_type = stream
port = 48700
wait = no
user = nobody
server =/usr/local/bin/mycat_status
log_on_failure += USERID
disable = no
}
======================================
3、创建xinetd启动服务脚本
vim /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
=====================================================
4、修改脚本文件权限
chmod 777 /usr/local/bin/mycat_status
chmod 777 /etc/xinetd.d/mycat_status
5、将启动脚本加入服务
#vim /etc/services
#在末尾加入
mycat_status 48700/tcp # mycat_status
6、重启xinetd服务
systemctl restart xinetd.service
7、验证mycat_status服务是否启动成功
netstat -antup|grep 48700
注意:/etc/xinetd.d/mycat_status里的service mycat_status(服务名)和port = 48700(端口)要与 /etc/services里的相同。
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~