MySQL分布式集群MyCAT(一) 简介及安装
MyCAT背景
MyCAT的前身,是阿里巴巴于2012年6月19日,正式对外开源的数据库中间件Cobar,Cobar的前身是早已经开源的Amoeba,不过其作者陈思儒离职去盛大之后,阿里巴巴内部考虑到Amoeba的稳定性、性能和功能支持,以及其他因素,重新设立了一个项目组并且更换名称为Cobar。Cobar是由 Alibaba 开源的 MySQL 分布式处理中间件,它可以在分布式的环境下看上去像传统数据库一样提供海量数据服务。
Cobar自诞生之日起, 就受到广大程序员的追捧,但是自2013年后,几乎没有后续更新。在此情况下,MyCAT应运而生,它基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能,以及众多成熟的使用案例使得MyCAT一开始就拥有一个很好的起点,站在巨人的肩膀上,MyCAT能看到更远。
MyCAT关键特性
· 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。
· 支持SQL92标准。
· 基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群。
· 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster。
· 基于Nio实现,有效管理线程,高并发问题。
· 支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数。
· 支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。
· 支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。
· 支持多租户方案。
· 支持分布式事务(弱xa)。
· 支持全局序列号,解决分布式下的主键生成问题。
· 分片规则丰富,插件化开发,易于扩展。
· 强大的web,命令行监控。
· 支持前端作为MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。
· 支持密码加密
· 支持服务降级
· 支持IP白名单
· 支持SQL黑名单、sql注入攻击拦截
· 支持分表(1.6)/li>
· 集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。
MyCAT架构
总体上分成三个部分,最前端的是连接器,线程管理使用了资源池,并且默认采用了AIO的方式(这些基本信息可以再启动日志里面看到)。
中间层在图中已经描述的很清楚了,SQL解析器+SQL路由,SQ,DataNode和心跳检测算是中间层实现的两个组件,一个是和MySQL的库(注意,不是实例)相关,一个是常见的监测机制的功能模块。
最下层的存储就是是MySQL的集群了,如何使用MySQL的集群,由我们自己决定。
MyCAT配置项
MyCAT目前通过配置文件的方式来定义逻辑库和相关配置,主要是包括三个文件:
MYCAT_HOME/conf/schema.xml中定义逻辑库,表、分片节点等内容。
MYCAT_HOME/conf/rule.xml中定义分片规则。
MYCAT_HOME/conf/server.xml中定义用户以及系统相关变量,如端口等。
MyCAT部署
部署mycat软件,如下:
1、卸载旧jdk
yum remove java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64 java-1.7.0-openjdk-devel-1.7.0.65-2.5.1.2.el6_5.x86_64
2、安装jdk
rpm -ivh jdk-8u45-linux-x64.rpm
3、解压mycat软件,移动到相应目录
tar -zxvf Mycat-server-1.4-RELEASE-20150901112004-linux.tar.gz
mv mycat /usr/local
4、创建mycat用户,软件目录,修改密码
useradd mycat
chown -R mycat.mycat /usr/local/mycat
chmod -R 750 /usr/local/mycat
passwd mycat
5、测试启动mycat
./mycat console start
Running Mycat-server...
wrapper | --> Wrapper Started as Console
wrapper | Launching a JVM...
jvm 1 | Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=64M; support was removed in 8.0
jvm 1 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1 | Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.
jvm 1 |
jvm 1 | log4j 2015-11-10 14:32:23 [./conf/log4j.xml] load completed.
jvm 1 | MyCAT Server startup successfully. see logs in logs/mycat.log
--启动成功
--liuyu