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

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

常用配置:

配置逻辑库映射

配置垂直切分的表

配置真实的数据库

配置读写结点

全部教程