Mycat 数据库分库分表中间件 解决大数据高并发难题

目前最流行的替代阿里巴巴开源数据库中间件Cobar的最佳方案

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

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

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

什么是MYCAT

  • 一个彻底开源的,面向企业应用开发的大数据库集群
  • 支持事务、ACID、可以替代MySQL的加强版数据库
  • 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
  • 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
  • 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
  • 一个新颖的数据库中间件产品

关键特性

 

  • 支持SQL92标准
  • 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法
  • 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。
  • 基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群。
  • 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster
  • 基于Nio实现,有效管理线程,解决高并发问题。
  • 支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数,支持跨库分页。
  • 支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。
  • 支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。
  • 支持多租户方案。
  • 支持分布式事务(弱xa)。
  • 支持XA分布式事务(1.6.5)。
  • 支持全局序列号,解决分布式下的主键生成问题。
  • 分片规则丰富,插件化开发,易于扩展。
  • 强大的web,命令行监控。
  • 支持前端作为MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。
  • 支持密码加密
  • 支持服务降级
  • 支持IP白名单
  • 支持SQL黑名单、sql注入攻击拦截
  • 支持prepare预编译指令(1.6)
  • 支持非堆内存(Direct Memory)聚合计算(1.6)
  • 支持PostgreSQL的native协议(1.6)
  • 支持mysql和oracle存储过程,out参数、多结果集返回(1.6)
  • 支持zookeeper协调主从切换、zk序列、配置zk化(1.6)
  • 支持库内分表(1.6)
  • 集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。

 

 

MYCAT监控

 

  • 支持对Mycat、Mysql性能监控
  • 支持对Mycat的JVM内存提供监控服务
  • 支持对线程的监控
  • 支持对操作系统的CPU、内存、磁盘、网络的监控

用户案例

运行在安智账户系统中,数据量单表总量6KW,20多张表,上亿条数据。 运行良好,高并发下偶尔出现sql操作有缓存延迟的现象

公安某项目已上线,主要使用mycat分库分表服务于web系统做代理统计查询,数据总计目前20个表,30亿数据,选取适合的业务使用mycat,而非所有业务都依托于mycat.

某电影票务行业系统,支撑线下1200家影院POS设备的刷卡及券类验证,使用Mycat-server-1.2.2做为数据库访问中间件,一期已上线并稳定运行2月余

联通某系统已上线Mycat10个月左右,从1.1版本开始到现在的1.3,采用分库+按日分区的方式,大概15个表左右,只保留一个月数据量,超期迁走,其中几个大表单表数据量约保持1.5亿左右。总数据量没统计,估算在7亿左右,运行稳定。

移动医疗产品,使用技术架构(spring+spring mvc+myibatis+mycat(mysql集群)+redis+nginx+Haproxy),使用mycat主要应用于采集数据的分布式存储,实现分库分表和读写分离,目前数据量在1.5亿左右,并且在不断增长中,预计今年将突破5亿。

大型零售系统,支持全国2万家以上门店使用,预计全面上线后每月新增订单1千万左右。最大的表会1年2亿左右。产品目前开发阶段,2015年4月8日上线初始版本,全面上线支持2w+门店的阶段还需要一定的时间

征信辅助系统,数据量单表总量10KW, 目前系统运行良好,使用mycat之后,不像以前要经常时不时的去看数据库是否正常了。

天狮集团B2C系统在数据库层面,系统使用Mysql数据库,并将产品库、用户库、订单库、日志库、归档库部署到不同的Mysql实例中,同时对于存在高并发写入的订单库进行分片集群设计。对于查询量比较大的产品库、用户库进行一主多从设计,系统对数据库的读写都通过Mycat数据库中间件完成。