MyCat 实战 - MyCat 配置 rule.xml 详解

本文纠正了关于MyCat配置的误解,重点讲解了schema.xml中的tableRule配置,包括dataNode、rule设定,以及如何通过rule-file.properties文件定义按整数范围和哈希取模的分片策略。
摘要由CSDN通过智能技术生成

抱歉,我之前关于 MyCat 配置文件的部分描述有误。实际上,MyCat 并没有名为 rule.xml 的配置文件,其主要的配置文件包括 server.xmlschema.xml,其中 schema.xml 包含了表规则的配置。

schema.xml 文件中,表规则的具体配置如下:

<table name="your_table_name" dataNode="dn1,dn2,..."
       rule="sharding-by-intfile(/path/to/rule-file.properties)">
    <!-- 其他属性 -->
</table>

在这个配置中:

  • name: 指定具体的表名。
  • dataNode: 指定这张表所属的数据节点列表,多个数据节点用逗号分隔。
  • rule: 指定分片规则,这里以 “sharding-by-intfile” 为例,它是通过指定一个 properties 文件来实现按整数范围分片的策略。例如,“/path/to/rule-file.properties” 就是要指向的规则文件路径。

在 “rule-file.properties” 文件中,详细定义了分片规则:

# rule-file.properties
# 分片键的字段名
tableRule.column=order_id

# 分片区间定义
0=dn1
10000=dn2
20000=dn3
...

在实际的 MyCat 分布式数据库系统中,更多的情况是直接在 schema.xml 文件中通过 <tableRule> 标签定义复杂的分片规则,而不是引用外部文件。例如:

<tableRule name="rule1">
    <rule>
        <columns>user_id</columns>
        <algorithm>mod-long</algorithm>
    </rule>
</tableRule>

<table name="user" dataNode="dn1,dn2" rule="rule1" />

这里 rule1 表示一个基于 user_id 字段做哈希取模分片的规则,应用于 user 表。

因此,对于 MyCat 的规则配置,主要是关注 schema.xml 文件中的 <tableRule><table> 标签内的相关配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值