MYCAT介绍
MYCAT起源
MYCART的主要作用
***数据库中间层***实现数据库的读写分离
我们可以利用数据库中间层来实现对业务数据库分库分表及读写分离的逻辑。这样做的好处是可以把所有逻辑全集中在一起进行处理,而不用对业务程序进行修改,只是把原来由业务程序直接访问数据库的方式,改成通过数据库中间层来对数据库进行访问就可以了。
1、实现数据库的读写分离
MYCAT支持读负载均衡
MYCAt支持后端MySQL高可用
2、数据库的垂直拆分
3、数据库水平拆分(分库分表)
MYCAT应用场景
需要进行读写分离的场景(读数量明显高于写数量)
需要进行分库要表的场景
多租户场景
数据统计系统
HBASE的一种替代方案
需要使用同样的方式查询多种数据库的场景
MYCAT的优势
基于阿里的Cobar系统凯发
开发社区活跃
完全开源可以自定义开发
支持多种关系型及NOSQL数据库
适应Java开发,可以部署在多种系统下
具有多种行业和项目应用中的成功案列
MYCAT基础
标题
MYCAT的关键特性
**## ·**支持SQL92标准
**## ·**支持MySQL集群
**## ·**支持JDBC链接数据库
**## ·**支持NOSQL数据库
**## ·**支持自动故障切换,高可用性
**## ·**支持读写分离
**## ·**支持全局表(字典表变动小)
**## ·**支持独有的基于ER关系的分片策略(子表的记录与所关联的父表存放在同一个数据分片上及子表依赖于父表存储保证了子表与父表关联时不会跨分片跨库进行操作)
支持一致性HASH分片(作用:解决了分片扩容的问题)
实际应用过程中:现在一台服务器上建立足够多的分片,当这台服务器的负载过大时而不能满足业务需求时可以把分片迁移到其他服务器上,这种扩容方式是最简单最高效的扩容方式
**## ·**多平台支持,部署简单方便
**## ·**支持全局序列号(自增id作为主键,一旦使用分片以后,自增ID在各自分片进行维护,这样会产生ID好重复的情况,违反了主键唯一性的要求,这是使用全局序列号,各个分片中统一分发自增序列)
安装MyCat
1、安装mycat
wget http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
2、解压mycat
tar zxf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
3、进入mycat用户
cd mycat/
cd …
ls
4、将mycat移到usr/local
mv /usr/local/
5、更改文件属主
也就是指定文件的拥有者改为另一个指定的用户或组 chown [选项]… [用户][:[组]] 文件…
chown mycat:mycat -R mycat
6、配置环境变量
vi /etc/profile
export MYCAT_HOME=/usr/local/mycat