MyCat分片怎么配置
本篇内容主要讲解"MyCat分片怎么配置",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"MyCat分片怎么配置"吧!
MyCat 架构
MyCat 核心概念
Schema
Schema:由它指定逻辑数据库(相当于MySQL的database数据库)
Table
Table:逻辑表(相当于MySQL的table表)
DataNode
DataNode:真正存储数据的物理节点
DataHost
DataHost:存储节点所在的数据库主机(指定MySQL数据库的连接信息)
User
User:MyCat的用户(类似于MySQL的用户,支持多用户)
MyCat 主要解决问题
海量数据保存 2。查询优化
MyCat 对多数据库的支持
MyCat 分片策略
MyCAT支持水平分片与垂直分片:水平分片:一个表格的数据分割到多个节点上,按照行分隔。垂直分片:一个数据库中多个表格A,B,C,A存储到节点1上,B存储到节点2上,C存储到节点3 上。
MyCAT通过定义表的分片规则来实现分片,每个表格可以捆绑一个分片规则,每个分片规则指定一个分 片字段并绑定一个函数,来实现动态分片算法。
Schema
Schema:逻辑库,与MySQL中的Database(数据库)对应,一个逻辑库中定义了所包括的Table。
Table
Table:表,即物理数据库中存储的某一张表,与传统数据库不同,这里的表格需要声明其所存储的 逻辑数据节点DataNode。在此可以指定表的分片规则。
DataNode
DataNode:MyCAT的逻辑数据节点,是存放table的具体物理节点,也称之为分片节点,通过 DataHost来关联到后端某个具体数据库上
DataHost
DataHost:定义某个物理库的访问地址,用于捆绑到Datanode上
MyCat 安装
下载MyCat
wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-
linux.tar.gz
解压缩
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
进入mycat/bin,启动MyCat
- 启动命令:./mycat start
- 停止命令:./mycat stop
- 重启命令:./mycat restart
- 查看状态:./mycat status
访问MyCat
使用mysql的客户端直接连接mycat服务。默认服务端口为【8066】
mysql -uroot -p123456 -h227.0.0.1 -P8066
MyCat 分片
配置schema.xml
什么是schema.xml
schema.xml作为Mycat中重要的配置文件之一,管理着Mycat的逻辑库、表、分片规则、DataNode 以及DataHost之间的映射关系。弄懂这些配置,是正确使用Mycat的前提。schema 标签用于定义MyCat实例中的逻辑库 Table 标签定义了MyCat中的逻辑表 dataNode 标签定义了MyCat中的数据节点,也就是我们通常说所的数据分片。dataHost标签在mycat逻辑库中也是作为最底层的标签存在,直接定义了具体的数据库实例、读 写分离配置和心跳语句。
Schema.xml 配置
配置Server.xml
server.xml介绍
server.xml几乎保存了所有mycat需要的系统配置信息。最常用的是在此配置用户名、密码及权限。
server.xml配置
配置rule.xml
rule.xml里面就定义了我们对表进行拆分所涉及到的规则定义。我们可以灵活的对表使用不同的分片算
法,或者对表使用相同的算法但具体的参数不同。这个文件里面主要有tableRule和function这两个标
签。在具体使用过程中可以按照需求添加tableRule和function。
此配置文件可以不用修改,使用默认即可。
primaryKey="ID"/>
writeType="0" dbType="mysql" dbDriver="native" switchType="1"
slaveThreshold="100">
select user()
password="root" >
配置server.xml
server.xml 介绍
server.xml几乎保存了所有mycat需要的系统配置信息。最常用的是在此配置用户名、密码及权限。
server.xml 配置
druidparser
mycat
TESTDB
配置rule.xml
rule.xml里面就定义了我们对表进行拆分所涉及到的规则定义。我们可以灵活的对表使用不同的分片算 法,或者对表使用相同的算法但具体的参数不同。这个文件里面主要有tableRule和function这两个标 签。在具体使用过程中可以按照需求添加tableRule和function。此配置文件可以不用修改,使用默认即可
sharding_id
hash-int
class="io.mycat.route.function.PartitionByFileMap">
partition-hash-int.txt
tableRule 标签配置说明:
name 属性指定唯一的名字,用于标识不同的表规则 rule 标签则指定对物理表中的哪一列进行拆分和使用什么路由算法。columns 内指定要拆分的列名字。algorithm 使用 function 标签中的 name 属性。连接表规则和具体路由算法。当然,多个表规则 可以连接到同一个路由算法上。table 标签内使用。让逻辑表使用这个规则进行分片。
function 标签配置说明:
name 指定算法的名字。class 制定路由算法具体的类名字。property 为具体算法需要用到的一些属性。
几个常用的分片规则
连续分片
日期列分区法
create_time
sharding-by-date
class="io.mycat.route.function..PartitionByDate">
yyyy-MM-dd
2014-01-01
10
配置说明:
tableRule标签:
columns :标识将要分片的表字段
algorithm :指定分片函数
function标签:
dateFormat :日期格式
sBeginDate :开始日期
sPartionDay :分区天数,即默认从开始日期算起,分隔10天一个分区
二、范围约定
配置说明:
tableRule标签:
create_time
sharding-by-month
class="io.mycat.route.function..PartitionByMonth">
yyyy-MM-dd
2014-01-01
create_time
sharding-by-hour
class="io.mycat.route.function..LastestMonthPartition">
24
配置说明 tableRule标签:columns :标识将要分片的表字段 algorithm :指定分片函数 function标签:dateFormat :日期格式 sBeginDate :开始日期 sPartionDay :分区天数,即默认从开始日期算起,分隔10天一个分区
范围约定
user_id
rang-long
class="io.mycat.route.function.AutoPartitionByLong">
autopartition-long.txt
配置说明 tableRule标签:columns :标识将要分片的表字段 algorithm :指定分片函数 function标签:mapFile :指定分片函数需要的配置文件名称
autopartition-long.txt文件内容:所有的节点配置都是从0开始,及0代表节点1,此配置非常简单,即预先制定可能的id范围对应某个分 片
# range start-end ,data node index
# K=1000,M=10000.
0-500M=0 0-100 0
500M-1000M=1 101-200 1
201-300 2
1000M-1500M=2
default=0
# 或以下写法
# 0-10000000=0
# 10000001-20000000=1
优势:扩容无需迁移数据 缺点:热点数据,并发受限
离散分片
枚举法
user_id
hash-int
class="io.mycat.route.function.PartitionByFileMap">
partition-hash-int.txt
0
0
配置说明 tableRule标签:columns :标识将要分片的表字段 algorithm :指定分片函数 function标签:mapFile :指定分片函数需要的配置文件名称 type :默认值为0,0表示Integer,非零表示String defaultNode :指定默认节点,小于0表示不设置默认节点,大于等于0表示设置默认节点,0代表节 点1。
默认节点的作用:枚举分片时,如果碰到不识别的枚举值,就让它路由到默认节点。如果不配置默认节点(defaultNode值小于0表示不配置默认节点),碰到不识别的枚举值 就会报错:
partition-hash-int.txt 配置:
10000=0 列等于10000 放第一个分片
10010=1
男=0
女=1
beijing=0
tianjin=1
zhanghai=2
求模法
user_id
mod-long
class="io.mycat.route.function.PartitionByMod">
3
tableRule标签:columns :标识将要分片的表字段 algorithm :指定分片函数 function标签:count :节点数量
一致性hash
user_id
murmur
class="io.mycat.route.function.PartitionByMurmurHash">
0
2
160
等,还有一些其他分片,这里,暂时不说明
测试分片
把商品表分片存储到三个数据节点上。
创建表
配置完毕后,重新启动mycat。使用mysql客户端连接mycat,创建表。
CREATE TABLE item (
id int(11) NOT NULL,
name varchar(20) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
分片测试
分片策略指定为"auto-sharding-long" 分片规则指定为"mod-long"
到此,相信大家对"MyCat分片怎么配置"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
配置
节点
数据
标签
规则
逻辑
数据库
文件
算法
函数
物理
存储
日期
不同
字段
标识
用户
路由
属性
权重
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机网络技术网上作业
信息网络安全中的信息指的是
安信交易服务器慢
逆水寒反馈问题的服务器名是什么
导航数据库 生效时间
斐讯虚拟服务器
公司服务器要怎么用
企业后台服务器管理
软件开发入学测试
猎鹿人无法连接到服务器
计算网络技术物联网
广州乐手网络技术有限公司
苏州嘉晟博远互联网科技公司
网络技术应用知识点.
计算机网络技术基础视频
安桌软件开发工具 电脑
数据库参考代码
320如何查询导航数据库
数据库怎么引用另一个表的数据
幼教 软件开发
工厂软件开发
联想rd540服务器
数据库表的项
配电室巡检系统软件开发
什么是1046服务器
数据库组件还有一个是
更新了数据库的内容要点击提交吗
postgre数据库重启
我的世界凭租服务器可以加光影吗
科技时代产物互联网与金融
相关文章