mycat分片规则.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
mycat分片规则

mycat 分片规则常用的根据主键或非主键的分片规则配置:1. 枚举法:? ?通过在配置文件中配置可能的枚举id,自己配置分片,使用规则:tableRule name=sharding-by-intfile rule columnsuser_id/columns algorithmhash-int/algorithm /rule /tableRulefunction name=hash-int class=org.opencloudb.route.function.PartitionByFileMap property name=mapFilepartition-hash-int.txt/property property name=type0/property property name=defaultNode0/property /functionpartition-hash-int.txt 配置:10000=010010=1DEFAULT_NODE=1上面columns 标识将要分片的表字段,algorithm 分片函数,其中分片函数配置中,mapFile标识配置文件名称,type默认值为0,0表示Integer,非零表示String,所有的节点配置都是从0开始,及0代表节点1/*** ?defaultNode 默认节点:小于0表示不设置默认节点,大于等于0表示设置默认节点*?默认节点的作用:枚举分片时,如果碰到不识别的枚举值,就让它路由到默认节点* ? ? ? ? ? ? ? ?如果不配置默认节点(defaultNode值小于0表示不配置默认节点),碰到* ? ? ? ? ? ? ? ?不识别的枚举值就会报错,* ? ? ? ? ? ? ? ?like this:cant find datanode for sharding column:column_name val:ffffffff ? ?*/2.固定分片hash算法tableRule name=rule1 rule columnsuser_id/columns algorithmfunc1/algorithm /rule/tableRule function name=func1 class=org.opencloudb.route.function.PartitionByLong property name=partitionCount2,1/property property name=partitionLength256,512/property /function配置说明:上面columns 标识将要分片的表字段,algorithm 分片函数,partitionCount 分片个数列表,partitionLength 分片范围列表分区长度:默认为最大2^n=1024 ,即最大支持1024分区约束 :count,length两个数组的长度必须是一致的。1024 = sum((count[i]*length[i])). count和length两个向量的点积恒等于1024用法例子:? ? ? ? 本例的分区策略:希望将数据水平分成3份,前两份各占25%,第三份占50%。(故本例非均匀分区)? ? ? ? // |---------------------1024------------------------|? ? ? ? // |----256---|----256---|----------512----------|? ? ? ? // | partition0 | partition1 | partition2 |? ? ? ? // | 共2份,故count[0]=2 | 共1份,故count[1]=1 |? ? ? ? int[] count = new int[] { 2, 1 };? ? ? ? int[] length = new int[] { 256, 512 };? ? ? ? PartitionUtil pu = new PartitionUtil(count, length);? ? ? ? // 下面代码演示分别以offerId字段或memberId字段根据上述分区策略拆分的分配结果? ? ? ? int DEFAULT_STR_HEAD_LEN = 8; // cobar默认会配置为此值? ? ? ? long offerId = 12345;? ? ? ? String memberId = qiushuo;? ? ? ? // 若根据offerId分配,partNo1将等于0,即按照上述分区策略,offerId为1234

文档评论(0)

dashewan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档