- Mycat是什么
- Mycat应用场景
- Mycat工作原理
- Mycat架构
- Mycat关键特性
1 Mycat是什么
- 大数据库集群
- 支持事务、ACID,可以替代MySQL的加强版数据库
- 一个融合了内存缓存、NoSQL、HDFS大数据的新型SQL Server
- 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
2 Mycat应用场景
- 单纯的读写分离(只需要简单配置,支持主从切换)
- 分库分表,对于超过1000万数据行的表进行分片,最大支持1000亿的单表分片
- 报表系统,借助于Mycat的分表能力,处理大规模报表的统计
- 替代Hbase,分析大数据
- 多租户应用,每个应用一个库,但应用程序只连接Mycat,从而不改造程序本身,实现多租户化
- 作为海量数据实时查询的一种简单有效方案,比如100亿条频繁查询的记录需要在3秒内查询出来
除了基于主键的查询,还可能存在范围查询或其它属性查询
3 Mycat工作原理
工作原理:“拦截”,它拦截了用户发送过来的SQL语句,首先解析SQL语句,做一些特定的分析,如分片分析、路由分析、读写分离分析、缓存分析等;然后将此SQL发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。
4 Mycat架构
5 Mycat关键特性
- 支持MySQL、Oracle、DB2、SQL Server等DB常见SQL语法
- 基于心跳的自动故障切换,支持读写分离,支持MySQL主从
- 支持Galara for MySQL集群
- 基于Nio实现,有限管理线程,解决高并发问题
- 支持数据的多片自动路由与聚合,支持sum, count, max等常用的聚合函数,支持跨库分页
- 支持多租户方案
- 支持分布式事务(弱xa)
- 支持XA分布式事务
- 支持全局序列号,解决分布式下的主键生成问题
- 分表规则丰富,插件化开发
- 支持服务降级
- 支持SQL黑名单、sql注入攻击拦截
- 支持zookeeper协调主从切换、zk序列
- 支持库内分表
- 集群基于zk管理,在线升级,扩容
- 支持prepare预编译指令
- 支持非堆内存(Direct Memory)聚合计算
- 支持密码加密
- 支持IP白名单
参考文章
结语
本人所有博客仅用于学习记录,不做任何商业用途,如涉及侵权,还请联系删除,感谢阅读,欢迎留言,一起进步~