MyCat配置文件详解--rule.xml

rule.xml中定义了对表进行拆分所涉及到的规则。我们可以对表使用不同的分片算法,或对表使用相同的算法但不同的参数。该文件中主要有tableRule和function 两个标签。

1. tableRule标签

该标签定义表规则。在rule.xml中定义表规则,例如:

<tableRule name="rule1">
    <rule>
        <columns>id</columns>
        <algorithm>func1</algorithm>
    </rule>
</tableRule>    

其中,name属性为表规则指定唯一名字。内嵌的rule标签指定拆分的物理表的列名及使用的路由算法。columns标签指定拆分的列名字。algorithm标签通过function标签的name属性,连接表规则和具体路由算法。当然,多个表规则可以连接到
同一个路由算法。 
rule.xml定义的表规则与schema.xml中table标签的rule属性相对应,逻辑表通过该规则进行分片。

2.function标签

该标签定义tableRule标签定义表规则的所用的算法,例如:

<function name="hash-int" class="io.mycat.route.function.PartitionByFileMap">
    <property name="mapFile">partition-hash-int.txt</property>
</function>

其中,name指定算法的名字,这与tableRule标签中name属性值相对应。class指定路由算法的具体类名字。property为具体算法需要用到的一些属性。

posted @ 2021-06-18 18:32  kldx5092  阅读(152)  评论(0编辑  收藏  举报