Mycat是一个数据库中间件产品,其前生是阿里巴巴的Cobar。地址:http://www.mycat.io/
一. Mycat的优势
- 基于阿里巴巴的Cobar系统开发
- 开发社区活跃
- 完全开源可以自定义开发
- 支持多种关系型及NoSQL数据库
- 使用Java开发,可以部署在多种系统上
二. Mycat的关键特性
- 支持SQL92标准
- 支持MySQL集群
- 支持JDBC连接数据库
- 支持NoSQL数据库
- 支持自动故障切换,高可用性
- 支持读写分离
- 支持全局表
- 支持独有的基于ER关系的分片策略
- 支持一致性hash分片
- 多平台支持,部署简单方便
- 支持全局序列号
三. Mycat的应用场景
- 需要进行读写分离的场景
- 需要进行分库分表的场景
- 多租户场景
- 数据统计系统
- HBase的一种替代方案
- 需要使用同样的方式查询多种数据库的场景(MyCAT可连接多种数据库)
四. Mycat的关键配置文件
1. schema.xml 用于配置逻辑库表及数据节点
- <schema><table></table></schema>定义逻辑库表
- <dataNode></dataNode>定义数据节点
- <dataHost></dataHost>定义数据节点的物理数据源
2. rule.xml用于配置表的分片规则
- <tableRule name=""><tableRule>定义表使用的分片规则
- <function name=""></function>定义分片算法
3. server.xml用于配置服务器权限
- <system><property name=""></property></system>用于定义系统配置,例如端口号、系统使用内存大小等
- <user></user>用于定义连接MyCAT的用户(账号密码等)注意:这里定义的用户和后端数据库的实际用户可以不一样
五. 管理Mycat
1. 使用MySQL客户端管理MyCAT
- 管理端口<property name="managerPort">9066</property>
- mysql -uroot -p123456 -h127.0.0.1 -P9066 这里的用户名密码是在server.xml中配置的信息
2. 简单的管理mycat的命令
- show @@help; 查看管理命令
- reload @@config; 加载mycat配置文件,但是并不是所有的都能够通过该命令加载的,有些还需要对mycat进行重启
- show @@datanode; 查看mycat中配置的数据节点详情
- show @@datasource; 查看mycat后端的物理数据库服务器的详情
- show @@backend;查看后端的数据库的连接情况
六. MyCAT日志管理
- MyCAT使用Apache log4j项目管理日志
- 文件:conf/log4j2.xml