欢迎来到天天文库
浏览记录
ID:38812628
大小:239.55 KB
页数:18页
时间:2019-06-19
《详解 mycat分片》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MYcat分片规则.枚举法: 通过在配置文件中配置可能的枚举id,自己配置分片,使用规则: user_id hash-int partition-hash-int.t
2、xt 0 0 partition-hash-int.txt配置: 10000=0 10010=1 DEFAULT_NODE=1上面columns标识将要分片的表字段,algorithm分片函数,其中分片函数配置中,mapFile标识配置文件名称,type默认值为0,0表示Integer,非零表示String,所有的节点配置都是从0开始,及0代表节点1/*** defaultNode默认节点:小于0表示
3、不设置默认节点,大于等于0表示设置默认节点* 默认节点的作用:枚举分片时,如果碰到不识别的枚举值,就让它路由到默认节点* 如果不配置默认节点(defaultNode值小于0表示不配置默认节点),碰到* 不识别的枚举值就会报错,* likethis:can'tfinddatanodeforshardingcolumn:column_nameval:ffffffff */2.固定分片hash算法 user_id func14、gorithm> 2,1 256,512 配置说明:上面columns标识将要分片的表字段,algorithm分片函数,partitionCount分片个数列表,partitionLength分片范围列表分
4、gorithm>
5、区长度:默认为最大2^n=1024,即最大支持1024分区约束:count,length两个数组的长度必须是一致的。1024=sum((count[i]*length[i])).count和length两个向量的点积恒等于1024用法例子: 本例的分区策略:希望将数据水平分成3份,前两份各占25%,第三份占50%。(故本例非均匀分区) //
6、<---------------------1024------------------------>
7、 //
8、<----256--->
9、<----256--->
10、<----------512---------->
11、 //
12、p
13、artition0
14、partition1
15、partition2
16、 //
17、共2份,故count[0]=2
18、共1份,故count[1]=1
19、 int[]count=newint[]{2,1}; int[]length=newint[]{256,512}; PartitionUtilpu=newPartitionUtil(count,length); //下面代码演示分别以offerId字段或memberId字段根据上述分区策略拆分的分配结果 intDEFAULT_STR_HEAD_LEN=8;//cobar默认会配置为此值 longofferId=1
20、2345; StringmemberId="qiushuo"; //若根据offerId分配,partNo1将等于0,即按照上述分区策略,offerId为12345时将会被分配到partition0中 intpartNo1=pu.partition(offerId); //若根据memberId分配,partNo2将等于2,即按照上述分区策略,memberId为qiushuo时将会被分到partition2中
此文档下载收益归作者所有