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

标签: mycat mycat 集群 | 发表时间:2017-07-19 00:14 | 作者:l1028386804
出处:http://blog.csdn.net

转载请注明出处: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介绍

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




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

相关 [mycat mycat 集群] 推荐:

MyCat集群部署(HAProxy + MyCat)

- - 行业应用 - ITeye博客
参考实战视频: http://www.roncoo.com/course/view/85d6008fe77c4199b0cdd2885eaeee53. 《高可用架构篇--第13节--MySQL源码编译安装(CentOS-6.6+MySQL-5.6)》. 《高可用架构篇--第14节--MySQL主从复制的配置(CentOS-6.6+MySQL-5.6)》.

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

- - CSDN博客推荐文章
转载请注明出处: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 (自行下载源码编译).

Mycat 入门

- - 数据库 - ITeye博客
MyCAT是mysql中间件,前身是阿里大名鼎鼎的Cobar,Cobar在开源了一段时间后,不了了之. 于是MyCAT扛起了这面大旗,在大数据时代,其重要性愈发彰显. 这篇文章主要是MyCAT的入门部署. 因Mycat是用java开发的,所以需要在实验环境下安装java,官方建议jdk1.7及以上版本.

mycat 数据库中间件

- - Oracle - 数据库 - ITeye博客
出处:http://blog.csdn.net/nxw_tsp/article/details/56277430. 实习的时候,在一个项目当中,项目经理要求把原先的MySQL数据连接基于mycat来进行改造. 当时就在想MyCat是什么东西. MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里.

MySQL分布式中间件:MyCAT

- - 标点符
随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩充,数据库应用已经普遍建立于计算机网络之上. 这时集中式数据库系统表现出它的不足:. 集中式处理,势必造成性能瓶颈;. 应用程序集中在一台计算机上运行,一旦该计算机发生故障,则整个系统受到影响,可靠性不高;. 集中式处理引起系统的规模和配置都不够灵活,系统的可扩充性差.

Mycat 设置全局序列号

- - 数据库 - ITeye博客
在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一. 为此,MyCat 提供了全局sequence,并且提供了包含本地配置和数据库配置等多种实现方式. 原理:此方式MyCAT将sequence配置到文件中,当使用到sequence中的配置后,MyCAT会更下classpath中的sequence_conf.properties文件中sequence当前的值.

【Mycat 1.6 之路由与分发流程】

- - ITeye博客
一、Mycat 的路由与分发流程. 从原理上来看,可以把 mycat 看成一个 sql 转发器. mycat 接收到前端发来的 sql,然后转发到后台的 mysql 服务器上去执行. 但是后面有很多台 mysql 节点(如 dn1,dn2,dn3),该转发到哪些节点呢. 路由能保证 sql 转发到正确的节点.

数据库垂直拆分,水平拆分利器,cobar升级版mycat

- - CSDN博客推荐文章
基于阿里的开源cobar ,可以用于生产系统中,目前在做如下的一些改进:. 非阻塞IO的实现,相对于目前的cobar,并发性能大大提升,而且不会陷入假死状态. 优化线程池的分配,目前cobar的线程池分配效率不高. 修复cobar一些BUG. 参考impala中的impala front部分的Java代码,实现高效的Map-Reduce,能够处理上亿的大数据量.

集群概念

- - 开源软件 - ITeye博客
        集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台. 在客户端看来,一个集群就象是一个服务实体,但 事实上集群由一组服务实体组成.         与单一服务实体相比较,集群提供了以下两个关键特性:.        1.可扩展性--集群的性能不限于单一的服务实体,新的服 务实体可以动态地加入到集群,从而增强集群的性能.

MYSQL集群介绍

- - 企业架构 - ITeye博客
MySQL Proxy是一个处于你的client端和MySQL server端之间的简单程序,它可以监测、分析或改变它们的通信. 它使用灵活,没有限制,常见的用途包括:负载平衡,故障、查询分析,查询过滤和修改等等. MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡.