继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

MyCat 看了这篇什么都会了

慕标5832272
关注TA
已关注
手记 1263
粉丝 233
获赞 1008

1、什么是MyCat

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


2、为什么使用MyCat

如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的。这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库。如何使用关系型数据库解决海量存储的问题呢?此时就需要做数据库集群,为了提高查询性能将一个数据库的数据分散到不同的数据库中存储,为应对此问题就出现了——MyCat 

  综上所述:Mycat作用为:能满足数据库数据大量存储;提高了查询性能


3、支持的数据库

支持MySQL ORACLE SQLServer等一些主流的数据库

webp

4、核心技术(分库分表)

数据库分片指:通过某种特定的条件,将我们存放在一个数据库中的数据分散存放在不同的多个数据库(主机)中,这样来达到分散单台设备的负载,根据切片规则,可分为以下两种切片模式

webp

MyCAT通过定义表的分片规则来实现分片,每个表格可以捆绑一个分片规则,每个分片规则指定一个分片字段并绑定一个函数,来实现动态分片算法 

1.Schema:逻辑库,与MySQL中的Database(数据库)对应,一个逻辑库中定义了所包括的Table。 

2.Table:逻辑表,即物理数据库中存储的某一张表,与传统数据库不同,这里的表格需要声明其所存储的逻辑数据节点DataNode。在此可以指定表的分片规则。 

3.DataNode:MyCAT的逻辑数据节点,是存放table的具体物理节点,也称之为分片节点,通过DataSource来关联到后端某个具体数据库上 

4.DataSource:定义某个物理库的访问地址,用于捆绑到Datanode上

5、分片规则:前面讲了数据切分,一个大表被分成若干个分片表,就需要一定的规则,这样按照某种业务规则把数据分到某个分片的规则就是分片规则,数据切分选择合适的分片规则非常重要,将极大的避免后续数据处理的难

5、Mycat的下载及安装

1、jdk:要求jdk必须是1.7及以上版本     2、Mysql:推荐mysql是5.5以上版本      3、Mycat:  Mycat的官方网站:http://www.mycat.org.cn/      下载地址:  https://github.com/MyCATApache/Mycat-download 

Mycat有windows、linux多种版本。本教程为linux安装步骤,windows基本相同。  第一步:下载Mycat-server-xxxx-linux.tar.gz     第二步:将压缩包解压缩。建议将mycat放到/usr/local/mycat目录下。    第三步:进入mycat目录,启动mycat./mycat start   停止:./mycat stop    mycat支持的命令{ console | start | stop | restart | status | dump }   Mycat的默认端口号为:8066

6、需求及安装环境分析

需求是把商品表分片存储到三个数据节点上。安装环境   两台mysql数据库服务器:Host1:192.168.25.134  Host2:192.168.25.166        host1环境   操作系统版本: centos6.4      数据库版本: mysql-5.6    mycat版本 :1.4 release     数据库名: db1、db3      mysql节点2环境    操作系统版本: centos6.4             数据库版本: mysql-5.6      mycat版本 :1.4 release       数据库名: db2    MyCat安装到节点1上(需要安装jdk)

7、配置文件的相关配置


webp


webp

配置完成后进行分片测试


webp

Mycat的读写分离是建立在Mysq的主从复制的基础上的,Mysql的读写分离这里就不再做过多的赘述


Mycat 1.4 支持MySQL主从复制状态绑定的读写分离机制,让读更加安全可靠,配置如下


webp

(1) 设置balance="1"与writeType="0"

Balance参数设置:

1. balance=“0”, 所有读操作都发送到当前可用的writeHost上。

2. balance=“1”,所有读操作都随机的发送到readHost。

3. balance=“2”,所有读操作都随机的在writeHost、readhost上分发

WriteType参数设置:

1. writeType=“0”, 所有写操作都发送到可用的writeHost上。

2. writeType=“1”,所有写操作都随机的发送到readHost。

3. writeType=“2”,所有写操作都随机的在writeHost、readhost分上发。

 “readHost是从属于writeHost的,即意味着它从那个writeHost获取同步数据,因此,当它所属的writeHost宕机了,则它也不会再参与到读写分离中来,即“不工作了”,这是因为此时,它的数据已经“不可靠”了。基于这个考虑,目前mycat 1.3和1.4版本中,若想支持MySQL一主一从的标准配置,并且在主节点宕机的情况下,从节点还能读取数据,则需要在Mycat里配置为两个writeHost并设置banlance=1。”



作者:木迪_2a4e
链接:https://www.jianshu.com/p/c6e29d724fca


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP