Mycat

Posted yangweiyong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mycat相关的知识,希望对你有一定的参考价值。

 Mycat简介

 Mycat是什么

Mycat是一款面向企业级应用的开源数据库中间件产品。

 

 Mycat能做什么

 

在数据库集群环境下,对多个数据源进行统一的协调、调度。

让我们程序员更加专注于业务的开发

技术图片

1.1 安装Mycat

1)下载Mycat,并上传到linux服务器(不限定那一台主机),下载地址:http://dl.mycat.io

 

2)解压到/usr/local目录下

tar zxvf Mycat-server-1.6.5-release-20171228230037-linux.tar.gz -C /usr/local/

 

 配置Mycat

 相关术语

逻辑库:虚拟的数据库,用来对外配置dataSource

逻辑表:虚拟的数据库表格,用来合并分散在各个数据库中的表格数据;

 点:每个单独的数据库称为一个节点。

技术图片

 指定逻辑库、逻辑表

修改schema.xml文件,vi /mycat/conf/schema.xml

技术图片

 指定节点(真实的数据库)

修改schema.xml文件,vi /mycat/conf/schema.xml

技术图片

 修改用户,指定逻辑库

编辑server.xml文件,指定访问逻辑库的用户名密码

vi /mycat/conf/server.xml

 技术图片

 启动Mycat

执行命令   ./mycat/bin/mycat start,启动mycat

技术图片

 连接Mycat

  使用在server.xml中配置的用户连接,默认端口8066。(注意防火墙)

技术图片

 测试

1)在mycat中创建逻辑表;

2)在db1db2db3中分别插入数据;

3)在mycat中查询逻辑表,观察分散的数据是否合并显示。

 

 连接出现的问题及解决方案

 问题:不认识主机名

技术图片

 解决方案:修改hosts文件,指定主机名

[[email protected] logs]# vim /etc/hosts

 技术图片

 说明:修改hosts文件,指定当前的主机名,映射到当前服务器的ip即可。

 

开启读写分离配置

说明:Mycat默认情况下,关闭了读写分离。

开启方式:修改<dataHost>节点的balance属性,修改为3

 技术图片

注意:balance值的具体含义:

技术图片

 

 

 Mycat分片策略

通过Mycat查询数据的时候,mycat会将分散在各个真实数据库中的数据合并,保证查询结果的安全性、准确性;那么,通过Mycat向数据库插入数据的时候,插入的数据到底保存在哪一个数据库中呢?

 

Mycat分片策略能解决这个问题。

 

schema.xml中指定逻辑表时,逻辑表有typerule这两个属性:

type指定表的类型:全局表|普通表(默认)

    rule指定分片规则:插入的数据按照规则插入对应的数据库。

 

 global全局表

type属性默认为普通表,当指定type=”global”

1)该表在所有的db上保存的数据一致,即新插入的数据会保存到所有的数据库中。

2rule规则失效。

 技术图片

 Mycat常用分片规则

    逻辑表的rule属性,指定分片规则;分片规则定义在/conf/rule.xml中。

 

 auto-sharding-long(默认)

根据指定字段的范围分片。schema.xml

技术图片

Rule.xml

 技术图片

技术图片

/conf/autopartition-long.txt

 技术图片

说明:

1)、0表示第一个db节点,依次类推;

2)、根据id值的范围,存到对应的db节点上。

3)、也可以根据其它的字段来分片。

 

 sharding-by-intfile

枚举法:

根据指定字段的值,依次将数据保存到对应的db节点上。

/conf/rule.xml

技术图片

技术图片

/conf/partition-hash-int.txt

技术图片

说明:

    10表示第一个db节点;

    2)指定字段的值为10000时,这条数据会插入到0这个节点上;

    3)适合将不同类别的数据,存储到不同的数据库中。

 

hash-int算法其它属性:type|defaultNode

 技术图片

适用场景按某个字段的值做分类存储

 mod-long

取余数法:

 技术图片

技术图片

说明:

    1id对节点数量取模,如:1%3=1, 2%3=2, 3%3=0

    20表示第一个db节点,依次类推。

 sharding-by-murmur

一致性hash算法

技术图片

技术图片

1.1.1 sharding-by-month

月份分片法:

 技术图片

技术图片

以上是关于Mycat的主要内容,如果未能解决你的问题,请参考以下文章

MyCAT简单入门配置

mycat

MyCat

MyCat学习

MySQL系列教程

Mycat配置说明