mycat 自动生成ID策略配置--备忘

一.文件方式

1.server.xml
<property name="sequenceHandlerType">0</property>
2.sequence_conf.properties
GLOBAL.HISIDS=
GLOBAL.MINID=10001
GLOBAL.MAXID=9999999999
GLOBAL.CURID=10000

ORDER.HISIDS=
ORDER.MINID=1001
ORDER.MAXID=9999999999
ORDER.CURID=1000

前缀GLOBALORDER表示不同分组。可以使用talbe name来表示不同表的ID生成

后缀HISIDS表示使用过的历史分段(一般无特殊需要可不配置),MINID表示最小ID值,MAXID表示最大ID值,CURID表示当前ID值

3.使用
insert into table(id,name) values('next value for MYCATSEQ_GLOBAL','test');

next value for MYCATSEQ_GLOBAL中的GLOBAL表示sequence_conf.properties中配置的分组前缀

4.优缺点

缺点:当MyCAT重新发布后,配置文件中的sequence会恢复到初始值。

优点:本地加载,读取速度较快

二.数据库方式

1.server.xml
<property name="sequenceHandlerType">1</property>
2.sequence_db_conf.properties

指定sequence相关配置在哪个节点上

#sequence stored in datanode
GLOBAL=dn1
COMPANY=dn1
CUSTOMER=dn1
ORDERS=dn1
3.执行dbseq.sql

sequence_db_conf.properties文件中指定的数据库节点上执行dbseq.sql脚本。

其中有表MYCAT_SEQUENCE,用于存储sequence值。字段如下

name:sequence分组,可以用table名。对应sequence_db_conf.properties的键。

current_value:当前sequence值。

increment:每次生成的sequence数量,用于mycat本地缓存,减少db交互。

4.使用

INSERT INTO MYCAT_SEQUENCE(name,current_value,increment) VALUES (‘ORDERS‘, 100000, 100); 

insert into test_mycat_table(id,content) values ('next value for MYCATSEQ_ORDERS','test333');

三.时间戳方式

1.server.xml
<property name="sequenceHandlerType">2</property>
2.sequence_time_conf.properties

类似雪花算法,配置机器ID和数据中心ID,不同的mycat实例,配置须不一样

#sequence depend on TIME
WORKID=01
DATAACENTERID=01
3.使用
insert into test_mycat_table(id,content) values ('next value for MYCATSEQ_XX','test555');

四.zookeeper

待定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值