数据库中间件mycat配置

数据库中间件:mycat
逻辑库:即mycat服务上的数据库,并非实际mysql服务上的数据库。
逻辑表:与逻辑库同理。
数据节点:是mycat逻辑表与mysql物理表的对应关系,mycat服务上
某个库中的某个表的数据可能是由不同mysql服务器上数据库中表的数据组成。
具体哪个逻辑表对应mysql的哪个实际表由我们自己配置。

mycat 分片设置:config/schema.xml 逻辑库配置文件
config/server.xml 服务配置文件
配置文件设置示例:
schema.xml



schema标签, name 表示逻辑库的名称,我们远程或者本地连接mycat上的数据库时库名称就是它。
rule="auto-sharding-long"分片规则是按ID大小来分库。ID值再1-500W之间分一个库,500w-1000W再分一个库。以此类推,如果ID大于分库的最大ID,数据会存储失败。

table标签,name表示逻辑表名。dataNode表示数据节点,就是数据来源于mysql的哪个库。 dataNode标签,数据节点配置,name的值与table标签中 dataNode的值对应。database的值与mysql上数据库的名称一致。datahost是datahost标签中name属性的值。

下面是配置主从节点,在读写分离时,主从复制是由mysql服务器完成,mycat只做数据库选择任务,可以只留一个节点。



server.xml

查看分片规则配置文件:config/rule.xml
auto-sharding-long分片规则讲解


tableRule标签的name属性的值与schema.xml文件中table标签rule属性的值一一对应。
子标签rule中columns的值与数据库表中的字段对应。
子标签的algorithm值与文件中的function标签name属性的值一致。
function标签中rang-long的规则定义又指向了autopartition-long.txt这个文件

这些规则都是可以自定义和扩展的。
示例:

<tableRule name="myrule">
		<rule>
			<columns>mycolumn</columns>
			<algorithm>rang-long</algorithm>
		</rule>
</tableRule>

声明:algorithm属性的值,可以是当前配置文件中任意function标签中name属性的值

一致hash分片规则:这个规则是把数据大致平均分配给各个物理库(根据算法走,所以不一定是完全平均分配)


可自定义对其进行扩展。

相关文章

Mycat是什么?MyCat是一个开源的分布式数据库系统,是一个实...
转自:https://www.cnblogs.com/ivictor/p/5111495.html参考...
1.在数据库做好主从同步的情况下搭建mycat。下载mycat,解压...
集群的服务器列表在10.11.0.210和10.11.0.216中部署mycat和h...
Mycat是什么?·一个彻底开源的,面向企业应用开发的大数据库...
<system>配置Mycat系统参数 <system>  <p...