MySQL 中间件 Mycat

介绍

        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  
        4. Mycat在线视频培训 地址:链接:http://pan.baidu.com/s/1nuR26rZ 密码:1gr9 (2015

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值