Mycat原理与入门

上传人:豆浆 文档编号:11122885 上传时间:2017-09-02 格式:PDF 页数:40 大小:1.13MB
返回 下载 相关 举报
Mycat原理与入门_第1页
第1页 / 共40页
Mycat原理与入门_第2页
第2页 / 共40页
Mycat原理与入门_第3页
第3页 / 共40页
Mycat原理与入门_第4页
第4页 / 共40页
Mycat原理与入门_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《Mycat原理与入门》由会员分享,可在线阅读,更多相关《Mycat原理与入门(40页珍藏版)》请在金锄头文库上搜索。

1、Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat从入门到精 通 第 2周 Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat原理与入门 Mycat术语与原理 Mycat基本功能介绍 Mycat配置入门 Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat术语与原理 分片 col1 col2 col3 col4 col5 col6 col7 tableA tableB 垂直 分片 VS水平分片 col1 col2 col3 col4 col5 col6 col7 T

2、ableB TableA Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat术语与原理 分片 分表 VS分库 schema A/database A tableXX1 tableXX2 tableXX3 tableXX tableXX tableXX tableXX schema A/database A schema B/database B schema C/database C tableXX Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat术语与原理 逻辑 表 & 逻辑库 tableXX tabl

3、eXX tableXX schema Ahost1 schema Ahost2 schema Ahost3 tableXX 逻辑表 物理表 逻 辑库 schema X/database X Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 MySQL A Mycat术语与原理 分片节点(DataNode) DN1 DN2 DN3 MySQL B MySQL C schema XXhostYY DataHost Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat术语与原理 分片节点(DataNode) DN1 DN2

4、DN3 MySQL B MySQL C MySQL A 数据增加,系统负担增大,转移分片到其他服务器上 Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat术语与原理 DataHost(MySQL Rep Group) MySQL B MySQL C MySQL A MySQL D 主 从复制 MySQL B MySQL C MySQL A 多点复制 Mysql Galera Cluster Mysql Master/Slave Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat术语与原理 select us

5、er() Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat术语与原理 心跳检测 &读 写分离 Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat术语与原理 主从切换 自动切换到备机 Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat术语与原理 Mysql2 Mysql1 分片字段、分片规则以及 SQL路由 分片字段 分片规则具体配置 分 片条件 枚举分片规则 SQL路由 Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Myca

6、t术语与原理 分片字段、分片规则 sharding_id hash-int 分片规则 =分片字段 +分片函数 partition-hash-int.txt 简单映射函数,根据分片字段的值,返回分片 Id Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat术语与原理 Mycat 分片 DN1 DN2 Mycat Customer1 Customer100 Customer1 Customer100 Custermer1 - Order1 Cutermer100 - Order4 Custermer1 - Order2 Custermer100 - Or

7、der 3 Order1 Order2 Order3 Order4 存在关联关系的父子表在数据插入的过程中,子表会被 Mycat路由到其相关父表记录的节点上,从而父子表的 Join查询可以下推到各个数据库节点上完成,这是最高效的跨节点 Join处理技术,也是 Mycat首创 Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat术语与原理 Mycat全局 表 ordershost1 ordershost2 ordershost3 ordershost4 insert into orders (xxx) Mycat 每个节点同时并发插入和更新数据,每个节点

8、都可以读取数据,提升读性能的同时解决跨 节点 Join的效率 Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat术语与原理 全 局序列号 分片情况下, MySQL自身的自增长主键无法保证唯一 Mycat自增长主键 基于全局序列号,每个需要定义自增长主键的表创建一个全局序列号 在数据库中建立一张表,存放 sequence名称 (name), sequence当前值 (current_value),步长(increment) int类型每次读取多少个 sequence,假设为 K)等信息 next value for MYCATSEQ_seqXXX My

9、cat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat术语与原理 弱事务 update sql DN1 DN2 DN3 commit 任意错误 回 滚标志 只 能 ollback 在 Update SQL执行成功的情况下, 随后的 Commit失败的概率非常小 因 此此模型还是能满足大多少应用的要求 Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat术语与原理 Mycat Catlet (HBT技术) Catlet是 Java编写的一段程序,类似数据库中的存储过程,可以实现任意复杂 SQL的 Join、 Group

10、、 Order等功能 Java编程 热加载 完全自主控制 SQL的结果集 Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat基本功能介绍 主从同步 一 :高可用性与 MySQL读写分离 Mycat MySQL Master MySQL Slave MySQL Slave Select SQL Inset SQL Program 自 动读写分离 自 动主从切换 基于主从时延的主从同步能力 Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat基本功能介绍 事务内的 SQL,默认走写节点,以注释 /*balance

11、*/开头,则会根据 balance=“1”或 “2”去获取 b. 非事务内的 SQL,开启读写分离默认根据 balance=“1”或 “2”去获取,以注释 /*balance*/开头则会走写解决部分已经开启读写分离,但是需要强一致性数据实时获取的场景走写 负载均衡类型,目前的取值有 3种: 1. balance=0, 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost上 。 2. balance=1,全部的 readHost与 stand by writeHost参与 select语句的负载均衡,简单的说,当双主双从模式 (M1-S1, M2-S2,并且 M1与 M2互为主备

12、 ),正常情况下, M2,S1,S2都参与 select语句的负载均衡。 3. balance=2,所有读操作都随机的在 writeHost、 readhost上分发。 4. balance=3,所有读请求随机的分发到 wiriterHost对应的 readhost执行, writerHost不负担读压力 Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat基本功能介绍 show slave status Mycat心跳机制通过检测 show slave status 中的 Seconds_Behind_Master, Slave_IO_Running

13、, Slave_SQL_Running 三个字段来确定当前主从同步的状态以及 Seconds_Behind_Master主从复制时延, 当 Seconds_Behind_MasterslaveThreshold时,读写分离筛选器会过滤掉此 Slave机器 Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat基本功能介绍 switchType=3 ,MyCAT心跳检查语句配置为 show status like wsrep% , 开启 MySQL集群复制状态状态绑定的读写分离与切换机制 show status like wsrep% Mycat从入门到精

14、通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat基本功能介绍 conf/log4j.xml中配置日志输出级别为 debug时,当选择节点的时候,会输出如下日志: 16:37:21.660 DEBUG Processor0-E3 (PhysicalDBPool.java:333) -select read source hostM1 for dataHost:localhost1 16:37:21.662 DEBUG Processor0-E3 (PhysicalDBPool.java:333) -select read source hostM1 for dataHo

15、st:localhost1 根据这个信息,可以确定某个 SQL发往了哪个读(写)节点,据此可以分析判断是否发生了读写分离 。 用 MySQL客户端连接到 Mycat的 9066管理端口,执行 show datanode , 也能看出负载均衡的情况,其中execute字段表明该分片上执行过的 SQL累计数 : Mycat从入门到精通 讲师 Leader-us DATAGURU专业数据分析社区 Mycat基本功能介绍 Mycat主从切换 switchType属性 - -1 表示不自动切换 - 1 默认值,自动切换 - 2 基于MySQL主从同步的状态决定是否切换 心跳语句为 show slave status - 3 基于 MySQL galary clu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号