MyCat
MyCat是一种数据库中间件,一端连接Java应用,一端连接数据库集群。使用对Mycat的配置完成对于数据库集群的管理,完成读写分离、数据分片(分库分表)、多数据源整合。
原理
拦截,拦截用户的sql语句,为sql语句查询指定数据源,并返回结果。
登录Mycat
mysql -umycat -p1223456 -p 8066 -h 192.168.0.1
垂直拆分(分库)
根据业务在mycat上配置哪个数据库在哪个机器上。
水平拆分(分表)
分库后将一张表在多台数据库上拆分,一般根据某个字段进行。
全局表
在每一个库中都存入全局表,查询值查询一份数据
常用分表规则
1.字段取模
2.根据枚举分类
3.约定范围
4.根据日期
全局序列(唯一id)
数据库方式,通过建立数据库的表每次从Mysql取一些可用的id数据,留给MyCat分配用完之后在此进行获取
高可用
HAProxy做MyCat的负载均衡
Keepalived保护HAProxy的ip
权限
1.通过配置server.xml的user标签配置用户权限
2.privileges标签配置对于表的访问权限
3.firewall标签设置sql拦截
可视化
使用MyCat-web监控平台。
MyCat-eye
整合
与使用单个mysql数据源一样