mycat全局序列号(主键)及分片配置

mycat全局序列号(主键)及分片配置

1.建全局sequence表

CREATE TABLE `MYCAT_SEQUENCE` (
  `NAME` varchar(50) COLLATE utf8mb4_bin NOT NULL,
  `current_value` int(11) NOT NULL,
  `increment` int(11) NOT NULL DEFAULT '100',
  PRIMARY KEY (`NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

2.插入数据
insert 本用的表名 BALANCE_REPORT
name:要使用全局主键的表名
current_value:是初始值
increment:是每次增长多少
在这里插入图片描述

注意:
1.表名大小问题:mycat默认全是大写
2.increment可能一次增涨多个(比如100个)应用拿到之后自行逐1增长,用完之后再来取,减少mysql数据库压力。如果没用完应用重起了,剩下的丢弃,重新从mysql取,避免主键错乱。

3.修改配置文件

vim /etc/mycat/sequence_db_conf.properties

填写对应表名 BALANCE_REPORT=dn_svc
其中 dn_svc就是后面在schema.xml中配置的datanode
在这里插入图片描述

4.配置schema.xml

vim /etc/mycat/schema.xml

主要是添加: primaryKey="id" autoIncrement="true"

注意:
autoIncrement针对的是primaryKey,跟分片无关;
分片字段是rule="mod-accountID-long"这里决定的。

schema.xml

<schema name="sc_svc" checkSQLschema="false" sqlMaxLimit="100">
        <table name="balance_report" dataNode="dn_svc$1-10" primaryKey="id" rule="mod-accountID-long" splitTableNames ="true" autoIncrement="true">
        </table>
    </schema>


   <!-- 生成 sequence 的节点 -->
    <dataNode name="dn_svc" dataHost="host_svc" database="svc"/>


    <!-- 生成sequnce -->
    <dataHost name="host_svc" balance="0" dbDriver="native" dbType="mysql" maxCon="1000" minCon="10" slaveThreshold="100" switchType="1" writeType="0">
        <heartbeat>select user()</heartbeat>
        <!-- can have multi write hosts -->
        <writeHost host="svchost" url="192.168.88.203:3306" user="root" password="Root@123" />
    </dataHost>

5。配置rule.xml
rule.xml

<tableRule name="mod-accountID-long">
        <rule>
            <columns>account_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>
</function>

autopartition-long.txt

# range start-end ,data node index
# K=1000,M=10000.
0-1000M=0
10000001-2000M=1
20000001-3000M=2
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100389.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Centos7安装Promethus(普罗米修斯)监控系统完整版

    Centos7安装Promethus(普罗米修斯)监控系统完整版相关博文:1、Centos7安装Promethus(普罗米修斯)监控系统完整版2、Promethus(普罗米修斯)监控Mysql数据库3、Promethus(普罗米修斯)安装Grafana可视化图形工具4、Promethus的Grafana图形显示MySQL监控数据5、Promethus(普罗米修斯)的Grafana+onealert实现报警功能目录一、普罗米修斯…

    2022年6月5日
    33
  • IPtables中SNAT、DNAT和MASQUERADE的含义

    IPtables中SNAT、DNAT和MASQUERADE的含义IPtables中可以灵活的做各种网络地址转换(NAT),网络地址转换主要有两种:SNAT和DNAT。SNAT是sourcenetworkaddresstranslation的缩写,即源地址目标转换。比如,多个PC机使用ADSL路由器共享上网,每个PC机都配置了内网IP,PC机访问外部网络的时候,路由器将数据包的报头中的源地址替换成路由器的ip,当外部网络的服务器比如网站web服务器接到访

    2022年6月15日
    30
  • 基于产生式规则的动物识别系统(Python)

    基于产生式规则的动物识别系统(Python)产生式:一组产生式,互相配合/协调,其中一个产生式产生的结论可以作为另一个产生式的事实使用,以求解问题如下图为产生式系统的基本结构:产生式系统的基本结构规则库:用于描述相应领域内过程性知识的产生式集合。对知识进行合…

    2022年10月24日
    0
  • PHP CURL GET HTTPS报错SSL certificate problem: unable to get local issuer certificate

    PHP CURL GET HTTPS报错SSL certificate problem: unable to get local issuer certificate请求HTTP使用phpcurl获取http资源,不会报错。如下:&amp;lt;?php//创建curl资源$ch=curl_init();//设置urlcurl_setopt($ch,CURLOPT_URL,&quot;baidu.com&quot;);//将Transfer作为字符串返回curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//执…

    2022年10月31日
    0
  • 简单介绍一下spring bean的生命周期_生命周期分析

    简单介绍一下spring bean的生命周期_生命周期分析面试题来自面试官发自灵魂深处的拷问:谈谈你对spring的理解;一脸懵逼的求职者的内心活动:啥?具体的问题是什么?现在的面试都不按套路出牌了吗?抛出一个这么大的问题,你让我怎么回答?一脸懵逼的求职者的回答:额~~~这个。。。。额~~~那个。。。。额~~~不知道唉。。。为什么面试官要问这种问题?不可否认,现在的大多数的面试出题方式都是这样的,惊人的相似,就是面试官喜欢抛出一个问题,看你能讲多深,考的就是你对这项技术的深度和广度,深度就是你对技…

    2022年9月19日
    0
  • vue上传文件夹和文件_vue打包后的文件如何运行

    vue上传文件夹和文件_vue打包后的文件如何运行<template><el-form:model=”formData”label-width=”280px”><el-form-itemlabel=”上传kbase视图文件”><el-uploadclass=”upload-demo”ref=”upload”:action=”formData.url”:he.

    2022年10月10日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号