博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL高可用架构之Mycat-关于Mycat安装和参数设置详解
阅读量:6293 次
发布时间:2019-06-22

本文共 1769 字,大约阅读时间需要 5 分钟。

        MySQL高可用架构之Mycat-关于Mycat安装和参数设置详解

                                      作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

一.Mycat介绍

1>.什么是Mycat

   Mycat背后是阿里曾经开源的知名产品,即Cobar,Cobar是阿里巴巴研发的关系型数据的分布式处理系统。

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

2>.Mycat 支持的功能

1>.支持SQL 92标准2>.支持MySQL集群,可以作为Proxy使用3>.支持JDBC连接多数据库4>.支持各种数据库,包括MySQL,MongoDB,Oracle,SQLserver,Hive,DB2,PostgreSQL等5>.支持Galera for MySQL集群,Percona-cluster或者MariaDB Cluster,提供高可用性数据分片集群6>.自动故障切换,高可用性7>.支持读写分离,支持MySQL双主多从,以及一主多从的模式8>.支持全局表,数据自动分片到多个节点,用于高效表关联查询9>.支持独有的基于E-R关系的分片策略,实现了高效的表关联查询10>.支持一致性Hash分片,有效解决分片扩容难题11>.多平台支持,部署和实施简单12>.支持Catelet开发,类似数据库存储过程,用于跨分片复杂SQL的人工智能编码实现13>.支持NIO与AIO两种网络通信机制,Windows下建议AIO,linux下目前建议NIO14>.支持MySQL存储过程调用15>.以插件方式支持SQL拦截和改写16>.支持自增长主键,支持Oracle的Sequence机制

3>.Mycat工作原理

   Mycat的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析:如分片分析,路由分析,读写分离分析,缓存分析等,然后将此SQL发往后端的真实数据库,并将返回的结果做适当的处理,最终返回给用户。

 

  上述图片里,Orders表被分为三个分片DataNode(简称dn),这三个分片是分布在两台MySQL Server(DataHost),即DataNode=datanode@datahost方式,因此你可以用一台到N台服务器来分片,分片规则为(sharding rule)典型的字符串枚举分片规则,一个规定的定义时分片字段(sharding column)+分片函数(rule function),这里的分片字段为prov而分片函数为字符串枚举方式。

  当Mycat收到一个SQL时,会先解析这个SQL,查询设计到表,然后看此表的定义,如果有分片规则,则获取到SQL里分片字段的值,并匹配分片函数,得到该SQL对应的分片列表,然后将SQL发往这些分片去执行,最后收集我和处理所有分片返回的结果数据,并输出到客户端。以“SELECT * FORM orders WHERE prov=?”语句为例,查到prov=wuhan,按照分片函数,wuhan返回dn1,于是SQL就发给MySQL1,去DB1上查询结果并返回给用户。

4>.Mycat 几个典型的应用场景

1>.单纯的读写分离,此时配置最为简单,支持读写分离,主从切换;2>.分标分库,对于超过1000万行的表进行分片,最大支持1000亿的单片分片;3>.多租户应用,每个应用应用一个库,但应用程序只连接Mycat,从而改造程序本身,实现多租户化;4>.报表系统,借助于Mycat的分表能力,处理大规模报表的统计;

 

二.Mycat安装

1>.下载Mycat()

 

2>.

 

3>.

 

 

三.

 

转载于:https://www.cnblogs.com/yinzhengjie/p/10540039.html

你可能感兴趣的文章
数据结构实践——顺序表应用
查看>>
python2.7 之centos7 安装 pip, Scrapy
查看>>
机智云开源框架初始化顺序
查看>>
Spark修炼之道(进阶篇)——Spark入门到精通:第五节 Spark编程模型(二)
查看>>
一线架构师实践指南:云时代下双活零切换的七大关键点
查看>>
ART世界探险(19) - 优化编译器的编译流程
查看>>
玩转Edas应用部署
查看>>
music-音符与常用记号
查看>>
sql操作命令
查看>>
zip 数据压缩
查看>>
Python爬虫学习系列教程
查看>>
【数据库优化专题】MySQL视图优化(二)
查看>>
【转载】每个程序员都应该学习使用Python或Ruby
查看>>
PHP高级编程之守护进程,实现优雅重启
查看>>
PHP字符编码转换类3
查看>>
rsync同步服务配置手记
查看>>
http缓存知识
查看>>
Go 时间交并集小工具
查看>>
iOS 多线程总结
查看>>
webpack是如何实现前端模块化的
查看>>