介绍
2013年阿里的Cobar在社区使用过程中发现存在一些比较严重的问题,及其使用限制,经过Mycat发起人第一次改良,第一代改良版——Mycat诞生。截至2015年11月,超过300个项目采用Mycat,涵盖银行、电信、电子商务、物流、移动应用、O2O的众多领域和公司。
从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库读写分离,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。也可以指定多个写库多个读库。
MyCat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,未来还会支持更多类型的存储。
        关键特性
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开发版)。
适合公司场景
1. Mycat通过心跳检测,自主切换数据库,保证高可用性能,无需手动却换。
2. 多租户应用,每个应用一个库,但应用程序只连接mycat,从而不改造车改造程序本身,实现多租户化
3. 读写分离
  • 事务内的SQL,全部走写节点,除非某个select语句以注释/*balance*/开头
  • 自动提交的select语句会走读节点,并在所有可用读节点中间随机负载均衡
  • 当某个主节点宕机,则其全部读节点都不再被使用,因为此时,同步失败,数据已经不是最新的,MyCAT会采用另外一个主节点所对应的全部读节点来实现select负载均衡。
  • 当所有主节点都失败,则为了系统高可用性,自动提交的所有select语句仍将提交到全部存活的读节点上执行,此时系统的很多页面还是能出来数据,只是用户修改或提交会失败。

资料:
1. 官网:http://mycat.io/
2. 开发者的个人博客 http://songwie.com/teachs?searthstr=Mycat&start=0&limit=100 
        3. 数据库垂直拆分 水平拆分 
        4. Mycat在线视频培训 地址:链接:http://pan.baidu.com/s/1nuR26rZ 密码:1gr9 (2015)
        5. 分布式数据库中间件Mycat百亿级数据存储

MySQL 中间件 Mycat相关推荐

  1. MySQL 中间件汇总比较

    360 Atlas 较为活跃,Atlas 是由 360 Web平台部基础架构团队开发维护的一个基于 MySQL 协议的数据中间层项目.它是在mysql-proxy 0.8.2版本的基础上,对其进行了优 ...

  2. docker二进制安装mysql_Docker搭建MySQL读写分离主从模式 分布式数据库中间件Mycat分库分表应用...

    一.MySQL读写分离主从模式 1. 下载镜像 docker pull mysql 当前最新版本:mysql Ver 8.0.19 for Linux on x86_64 (MySQL Communi ...

  3. mysql中间件研究(Atlas,cobar,TDDL,Mycat)

    2019独角兽企业重金招聘Python工程师标准>>> mysql中间件研究(Atlas,cobar,TDDL,Mycat) 博客分类: 数据库 mysql-proxy是官方提供的m ...

  4. mysql中间件研究( Atlas,cobar,TDDL,mycat,heisenberg,Oceanus,vitess,OneProxy )

    mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差.下面介绍几款能代替其的mysql开源中间件产品,Atlas ...

  5. 京东面试官:呦,你对中间件 Mycat了解的还挺深~

    1.数据切分概念 数据的切分[(Sharding)]根据其切分规则的类型,可以分为两种切分模式.一种是按照不同的表(或者Schema)来切分到不同的数据库(主机))之上,这种切可以称之为数据的垂直(纵 ...

  6. 分布式数据库中间件 MyCat 安装及使用

    分布式数据库中间件 MyCat 安装及使用 关于 MyCat 的铺垫文章已经写了三篇了: MySQL 只能做小项目?松哥要说几句公道话! 北冥有 Data,其名为鲲,鲲之大,一个 MySQL 放不下! ...

  7. zabbix历史数据mysql_处理Zabbixl历史数据库解决办法三---使用MySQL中间件为Zabbix数据库扩容...

    一 应用场景描述 前面介绍了两种处理Zabbix历史数据的解决办法,但是如果当监控数据继续增长的话是不足以解决问题的. 办法一适合在没有做表分区的情况下,只保留一段时间的数据,比如一个月,然后把老的数 ...

  8. 学习笔记:分库分表之中间件Mycat实战

    点关注,不迷路! 本文已整理成文档! 文章目录 1.数据切分概念 垂直切分 水平切分 2.什么是Mycat 应用场景 3.Mycat中的核心概念及配置 核心概念 安装与配置 linux安装 4. My ...

  9. MySQL 基于MyCAT配置数据分片

    目录 MySQL 基于MyCAT配置数据分片 相关概念 分库/分表 垂直分割 水平分割 MyCAT介绍 软件介绍 分片规则 工作过程 部署MyCAT服务 环境部署 拓部结构 IP规划 部署MyCAT服 ...

最新文章

  1. Classical Inheritance in JavaScript
  2. C#使用剪切板复制程序
  3. Boost:基于boost::asio模块引用计数程序
  4. osg::ComputeBoundsVisitor用法(二)
  5. 滞后分析rstudio_使用RStudio进行A / B测试分析
  6. leetcode142 环形链表II
  7. MONGODB 与sql聚合操作对应图
  8. 20170721L08-02-02老男孩Linux运维实战培训初级第八节课课前【上机实战】考试讲解...
  9. hduoj-----(2896)病毒侵袭(ac自动机)
  10. mysql case默认_linux下安装mysql
  11. 怎么修改图片到规定的大小?怎么改变图片KB大小?
  12. 分享微信、新浪等等插件
  13. 【VBScript】MsgBox()函数
  14. Windows10 如何设置自定义开机音乐
  15. iOS图像最佳实践总结
  16. 简报悦读:教育部取消5类高考加分项目,猿辅导纪录片讲述十年坚守
  17. 操作系统成组链接法(@王道论坛)
  18. MySQL数据类型选择
  19. NestJS + TypeGraphQL + MySQL 从入门到实战视频教程(35 个视频)
  20. (二十)【模电】(信号的运算与处理)集成运放组成的运算电路

热门文章

  1. dns服务期搭建使用_DNS服务器的搭建与使用详解
  2. ArcGIS发布GP服务
  3. 群雄逐鹿汽车芯片,为什么赢家会是这家国产品牌?
  4. JAVA练习203-航班预订统计
  5. 通透人生:少操心他人,多注重自己
  6. Opencv项目实战:19 手势控制鼠标
  7. Spring 集成嵌入式数据库方便单元测试
  8. 《人生的智慧》读后感
  9. 【2022】招商银行信用卡中心春招实习生技术岗A卷
  10. 抓住那头牛(广搜)--算法学习