MyCat

MyCAT 是一款开源软件,面向企业的“大型数据库集群”。MyCAT是一个强制数据库,它是MySQL的替代品,支持事务和ACID。

MyCAT作为企业数据库MySQL集群,可以替代昂贵的Oracle集群。

MyCAT也是一种新型的数据库,它看起来就像一个融合了内存缓存技术、NoSQL技术和HDFS大数据的SQL服务器。

MyCAT作为一种新型的现代企业数据库产品,与传统的数据库和新的分布式数据仓库相结合。

总之,MyCAT是一种全新的数据库中间件。

Mycat 的目标是将目前独立的数据库和应用程序以低成本平稳迁移到云端,解决数据存储和业务规模快速增长带来的瓶颈问题。

特性

  • 支持SQL 92标准

  • 支持MySQL集群,用作代理

  • 支持JDBC连接ORACLE, DB2, SQL Server,模拟为正常的MySQL服务器连接

  • 支持MySQL集群、percona集群或mariadb集群,提供高可用的数据碎片集群

  • 支持自动故障转移和高可用性

  • 支持读写分离,双主多从,单主多主MySQL模型

  • 支持全局表,自动将数据分割成多个节点,以实现高效的关系查询

  • 支持独特的基于er关系的碎片化策略,以实现高效的关系查询

  • 支持多种平台,易于部署和实现

优势

基于阿里巴巴开源项目Cobar,其稳定性、可靠性、优秀的架构和性能,以及众多成熟的用例,让MyCAT有了一个良好的开端。

站在巨人的肩膀上,MyCAT 有足够的信心走得更远。

广泛借鉴最好的开源项目和创新理念,融入Mycat的基因,使MyCAT领先于目前其他同类开源项目,甚至超越了一些商业产品。

MyCAT 背后有一支强大的技术团队,其参与者包括一些资深软件工程师、架构师、DBA 等五年以上从业经验。优秀的技术团队保证了 Mycat 的产品质量。

MyCAT 不依赖任何商业公司。 它不像一些开源项目,其重要的功能被封装在其商业产品中,把开源项目变成一个装饰品。

路线图

MyCAT在支持MySQL的基础上,增加了对商业开源数据库的更多支持,包括对PostgreSQL、FireBird等开源数据库的原生支持,以及Oracle等其他非开源数据库通过JDBC的间接支持 、DB2、SQL Server 等。

更智能的自调节属性,如SQL自动统计分析,自动创建和调整索引。 MyCAT根据读写频率自动优化缓存和备份策略

实现更全面的监控和管理

与 HDFS 集成,提供 SQL 命令,将数据库加载到 HDFS 中进行快速分析

集成优秀的开源报表工具,让MyCAT具备数据分析能力

下载

Mycat-download 在github上的Mycat-download项目中有一些编译好的二进制安装包。

文档

Mycat-doc 的 github 上的 Mycat-doc 项目中有一些文档。

Mycat简单demo,具体参考Mycat权威指南

官网:cat.io

Mycat权威指南官方下载:https://github.com/MyCATApache/Mycat-Server/blob/4135f25df8239d52d220529cbf7cb697ede40e12/mycat-definitive-guide.pdf

wiki: https://github.com/MyCATApache/Mycat-Server/wiki

Mycat前世今生

2013年阿里的Cobar在社区使用过程中发现存在一些比较严重的问题,及其使用限制,经过Mycat发起人第一次改良,第一代改良版——Mycat诞生。

Mycat开源以后,一些Cobar的用户参与了Mycat的开发,最终Mycat发展成为一个由众多软件公司的实力派架构师和资深开发人员维护的社区型开源软件。

2014年Mycat首次在上海的《中华架构师》大会上对外宣讲,更多的人参与进来,随后越来越多的项目采用了Mycat。

2015年5月,由核心参与者们一起编写的第一本官方权威指南《Mycat权威指南》电子版发布,累计超过500本,成为开源项目中的首创。

2015年10月为止,Mycat项目总共有16个Committer。

截至2015年11月,超过300个项目采用Mycat,涵盖银行、电信、电子商务、物流、移动应用、O2O的众多领域和公司。

截至2015年12月,超过4000名用户加群或研究讨论或测试或使用Mycat。

Mycat是基于开源cobar演变而来,我们对cobar的代码进行了彻底的重构,使用NIO重构了网络模块,并且优化了Buffer内核,增强了聚合,Join等基本特性,同时兼容绝大多数数据库成为通用的数据库中间件。1.4 版本以后 完全的脱离基本cobar内核,结合Mycat集群管理、自动扩容、智能优化,成为高性能的中间件。我们致力于开发高性能数据库中间而努力。永不收费,永不闭源,持续推动开源社区的发展。

Mycat吸引和聚集了一大批业内大数据和云计算方面的资深工程师,Mycat的发展壮大基于开源社区志愿者的持续努力,感谢社区志愿者的努力让Mycat更加强大,同时我们也欢迎社区更多的志愿者,特别是公司能够参与进来,参与Mycat的开发,一起推动社区的发展,为社区提供更好的开源中间件。

Mycat还不够强大,Mycat还有很多不足,欢迎社区志愿者的持续优化改进。

关键特性

支持SQL92标准

遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。

基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群。

支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster

基于Nio实现,有效管理线程,高并发问题。

支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数。

支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。

支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。

支持多租户方案。

支持分布式事务(弱xa)。

支持全局序列号,解决分布式下的主键生成问题。

分片规则丰富,插件化开发,易于扩展。

强大的web,命令行监控。

支持前端作为mysq通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。

支持密码加密

支持服务降级

支持IP白名单

支持SQL黑名单、sql注入攻击拦截

支持分表(1.6)

集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。

参考资料

https://github.com/MyCATApache/Mycat-Server