Mycat教程
Mycat读写分离
Mycat分库分表
Mycat全局序列号

Mycat教程

 

 

Mycat背景与由来

 

Mycat的前身是阿里巴巴大名鼎鼎的Cobar,Cobar在开源了一段时间后,就没有再维护了,阿里巴巴放弃了该项目,再加上Cobar在使用过程中也发现存在一些问题。

 

2013年国内一批开源软件爱好者对Cobar这个项目进行了改进,并命名为Mycat,这就是MyCat的诞生。

 

MyCat是完全免费开源的,不属于任何商业公司。

 

Mycat于2014年首次在上海的《中华架构师》大会上对外宣讲,随后越来越多的项目采用了Mycat。

 

截至2015年11月,超过300个项目采用Mycat,涵盖银行、电信、电子商务、物流、移动应用、O2O的众多领域和公司。

 

Mycat官网:http://www.mycat.io/

 

 

Mycat是什么

 

Mycat是一个开源数据库中间件,是一个实现了MySQL协议的的数据库中间件服务器,我们可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问Mycat,而Mycat再使用用MySQL原生(Native)协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,包括SQL Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,未来还会支持更多类型的存储;

 

一般地,Mycat主要用于代理MySQL数据库,虽然它也支持去访问其他类型的数据库;

 

Mycat的默认端口是8066,一般地,我们可以使用常见的对象映射框架比如MyBatis操作Mycat。

 

 

Mycat主要能做什么

 

1、数据库的读写分离

 

通过Mycat可以自动实现写数据时操作主数据库,读数据时操作从数据库,这样能有效地减轻数据库压力,也能减轻IO压力。

 

实现读写分离,当主出现故障后,Mycat自动切换到另一个主上,进而提供高可用的数据库服务,当然我需要部署多主多从的模式

 

如果有了Mycat,客户端直接连接Mycat,可以实现读写分离,如果主出现问题,会自动切换到从服务器上

 

2、数据库分库分表

 

分库分表指的是对数据库数据的拆分,分为两种:水平拆分和垂直拆分。

 

●  水平切分(横向切分)

 

根据表中数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库服务器上面。

 

●  垂直切分(纵向切分)

 

按照不同的表来切分到不同的数据库服务器之上。

 

 

结论

 

● 性能有瓶颈了,可以读写分离

 

● 数据库容量有瓶颈了,可以分库分表

 

 

Mycat环境搭建

 

1、下载

 

http://dl.mycat.io/1.6-RELEASE/

 

我们将08-MyCat\tools目录下下载好的Mycat直接上传到Linux上。

 

2、解压

 

tar –zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz –C /usr/local

 

 

3、Java语言开发的,直接解压即可使用

 

Tomcat

 

ZooKeeper

 

ActiveMQ

 

Mycat

 

 

Mycat日常管理

 

1、 Mycat启动

 

切换到mycat的bin路径下,执行

 

./mycat start

 

2、Mycat关闭

 

切换到mycat的bin路径下,执行

 

./mycat stop

 

3、Mycat命令行(先了解,后面会用到)

 

登录mycat命令行,使用mysql的命令行工具来操作的:

 

./mysql -umycat -p -P8066 -h127.0.0.1

 

mycat默认数据访问端口是8066

 

4、MyCat配置文件

 

● server.xml

 

主要用于配置mycat需要的服务器信息

 

常用配置:

 

配置序列生成方式

 

配置mycat逻辑数据库

 

配置mycat的访问账户和密码

 

● schema.xml

 

用于配置的逻辑数据库的映射、表、分片规则、数据结点及真实的数据库信息;

 

常用配置:

 

配置逻辑库映射

 

配置垂直切分的表

 

配置真实的数据库

 

配置读写结点

 

全部教程