mycat_partition size : 3 > table datanode size : 2

在搭配mycat实现范围约定进行分片的时候,配置文件如下
schema.xml

<table name="payment_info" dataNode="dn1,dn2" rule="auto_sharding_long" ></table>

rule.xml

<tableRule name="auto_sharding_long">
    <rule>
        <columns>order_id</columns>
        <algorithm>rang-long</algorithm>
    </rule>
</tableRule><function name="rang-long"
          class="io.mycat.route.function.AutoPartitionByLong">
    <property name="mapFile">autopartition-long.txt</property>
    <property name="defaultNode">0</property>
</function>

autopartition-long.txt

0-102=0
103-200=1

但是配置完成之后,重新启动mycat发现了一个问题

jvm 1    | WrapperSimpleApp: Encountered an error running main: java.lang.ExceptionInInitializerError
jvm 1    | java.lang.ExceptionInInitializerError
jvm 1    |      at io.mycat.MycatStartup.main(MycatStartup.java:53)
jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
jvm 1    |      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
jvm 1    |      at java.lang.reflect.Method.invoke(Method.java:498)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
jvm 1    |      at java.lang.Thread.run(Thread.java:748)
jvm 1    | Caused by: io.mycat.config.util.ConfigException: Illegal table conf : table [ PAYMENT_INFO ] rule function [ rang-long ] partition size : 3 > table datanode size : 2, please make sure table datanode size = function partition size
jvm 1    |      at io.mycat.config.loader.xml.XMLSchemaLoader.checkRuleSuitTable(XMLSchemaLoader.java:569)
jvm 1    |      at io.mycat.config.loader.xml.XMLSchemaLoader.loadTables(XMLSchemaLoader.java:396)
jvm 1    |      at io.mycat.config.loader.xml.XMLSchemaLoader.loadSchemas(XMLSchemaLoader.java:168)
jvm 1    |      at io.mycat.config.loader.xml.XMLSchemaLoader.load(XMLSchemaLoader.java:117)
jvm 1    |      at io.mycat.config.loader.xml.XMLSchemaLoader.<init>(XMLSchemaLoader.java:78)
jvm 1    |      at io.mycat.config.loader.xml.XMLSchemaLoader.<init>(XMLSchemaLoader.java:82)
jvm 1    |      at io.mycat.config.ConfigInitializer.<init>(ConfigInitializer.java:76)
jvm 1    |      at io.mycat.config.MycatConfig.<init>(MycatConfig.java:72)
jvm 1    |      at io.mycat.MycatServer.<init>(MycatServer.java:166)
jvm 1    |      at io.mycat.MycatServer.<clinit>(MycatServer.java:109)
jvm 1    |      ... 7 more
wrapper  | <-- Wrapper Stopped

其中最为重点的错误为

Illegal table conf : table [ PAYMENT_INFO ] rule function [ rang-long ] partition size : 3 > table datanode size : 2, please make sure table datanode size = function partition size

可以看到的是我们所指定的数据库节点和配置文件里面的节点不一致,一个为3一个为2
但是我的配置文件里面的确只配置了两个节点,一个dn1、一个dn2。
而后我配置文件一个一个检查过去,在autopartition-long.txt发现了问题
autopartition-long.txt的文件如下
**在这里插入图片描述**
红框的地方是mycat自带默认配置的,它里面自动帮我们配置了三个节点的数据。所以会报错,此时把这三行注释掉
在这里插入图片描述
保存文件重新启动mycat
在这里插入图片描述
成功启动

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值