Mycat 数据库分库分表中间件系列文章之一:Mycat的前世今生

Mycat目前是国内最活跃的、性能最好的开源数据库中间件! 官网地址

Mycat前世今生

  1. 2013年阿里的Cobar在社区使用过程中发现存在一些比较严重的问题,及其使用限制,经过Mycat发起人第一次改良,第一代改良版——Mycat诞生。 Mycat开源以后,一些Cobar的用户参与了Mycat的开发,最终Mycat发展成为一个由众多软件公司的实力派架构师和资深开发人员维护的社区型开源软件。
  2. 2014年Mycat首次在上海的《中华架构师》大会上对外宣讲,更多的人参与进来,随后越来越多的项目采用了Mycat。
  3. 2015年5月,由核心参与者们一起编写的第一本官方权威指南《Mycat权威指南》电子版发布,累计超过500本,成为开源项目中的首创。
  4. 2015年10月为止,Mycat项目总共有16个Committer。
  5. 截至2015年11月,超过300个项目采用Mycat,涵盖银行、电信、电子商务、物流、移动应用、O2O的众多领域和公司。
  6. 截至2015年12月,超过4000名用户加群或研究讨论或测试或使用Mycat。

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

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

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

关键特性

  1. 支持SQL92标准
  2. 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。
  3. 基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群。
  4. 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster
  5. 基于Nio实现,有效管理线程,高并发问题。
  6. 支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数。
  7. 支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。
  8. 支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。
  9. 支持多租户方案。
  10. 支持分布式事务(弱xa)。
  11. 支持全局序列号,解决分布式下的主键生成问题。
  12. 分片规则丰富,插件化开发,易于扩展。
  13. 强大的web,命令行监控。
  14. 支持前端作为mysq通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。
  15. 支持密码加密
  16. 支持服务降级
  17. 支持IP白名单
  18. 支持SQL黑名单、sql注入攻击拦截
  19. 支持分表(1.6)
  20. 集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。

长期规划2.0

  1. 完全实现分布式事务,完全的支持分布式。
  2. 通过Mycat web(eye)完成可视化配置,及智能监控,自动运维。
  3. 通过mysql 本地节点,完整的解决数据扩容难度,实现自动扩容机制,解决扩容难点。
  4. 支持基于zookeeper的主从切换及Mycat集群化管理。
  5. 通过Mycat Balance 替代第三方的Haproxy,LVS等第三方高可用,完整的兼容Mycat集群节点的动态上下线。
  6. 接入Spark等第三方工具,解决数据分析及大数据聚合的业务场景。
  7. 通过Mycat智能优化,分析分片热点,提供合理的分片建议,索引建议,及数据切分实时业务建议

优势

基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得MYCAT一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远。业界优秀的开源项目和创新思路被广泛融入到MYCAT的基因中,使得MYCAT在很多方面都领先于目前其他一些同类的开源项目,甚至超越某些商业产品。

MYCAT背后有一支强大的技术团队,其参与者都是5年以上资深软件工程师、架构师、DBA等,优秀的技术团队保证了MYCAT的产品质量。

MYCAT并不依托于任何一个商业公司,因此不像某些开源项目,将一些重要的特性封闭在其商业产品中,使得开源项目成了一个摆设。
文章部分内容转自Mycat官网

相关文章

此处评论已关闭