• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

数据库间件--Mycat

武飞扬头像
生命智峰
帮助1

前言

        前面讲过:

        今天我们就来详细讲讲一个热门的数据库中间件---MyCat

一、Mycat是什么?

        活跃的、性能好的开源数据库中间件!        ------ 来自官网:Mycat1.6

        Mycat是一个彻底开源的,面向企业应用开发的大数据库集群。

        从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。

---- 来自《百度百科》

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

   ---- 来自《开源中国》

        官网权威教程:Mycat 入门篇-1-3 · 语雀

        MycAT最新程序的源码和文档都托管在github,github地址:MyCATApache · GitHub

二、Mycat特性

        学新通

        特性:

支持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架构分析

        1、Mycat架构图

学新通

         2、MyCAT线程模型图

        学新通

四、教程和学习资料

        官网是最新最全面的,直接去官网学习是最佳方式。

        官网权威教程:Mycat 入门篇-1-3 · 语雀

五、应用场景

        学新通

        1、场景1:分库:将同一系统多个表分到不同的数据库

        解决办法:MyCat可以配置操作不能的表,连接到对应不同的数据库,对客户端来说不需要客户端来判断区分。

        2、场景2:分表(水平拆分):将同一张表拆分到不同的库不能的表

        解决办法:MyCat可以配置不同的规则,连接到对应不同数据库的数据表,对客户端来说不需要客户端来判断区分。

        3、场景3:水平分表后,附属信息表记录要跟着主表走

        解决办法:通过配置ER表(子表)实现

        4、场景4:水平分表后,通用信息表,如字典表,配置表怎么处理

        解决办法:通过配置全局表实现

六、数据库高可用集群架构--案例

         如下图所示:       学新通

         其中:

        Nginx:负载均衡,管理MyCat集群的高可用。

        Keepalived:心跳监控和管理Nginx服务的高可用。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhiabkhb
系列文章
更多 icon
同类精品
更多 icon
继续加载