详解mycat分片.docVIP

  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 分片规则 . 枚举法: ? ?通过在配置文件中配置可能的枚举id,自己配置分片,使用规则: 上面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算法 配置说明: 上面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为12345时将会被分配到partition0中 ? ? ? ? int partNo1 = pu.partition(offerId); ? ? ? ? // 若根据memberId分配,partNo2将等于2,即按照上述分区策略,memberId为qiushuo时将会被分到partition2中 ? ? ? ? int partNo2 = pu.partition(memberId, 0, DEFAULT_STR_HEAD_LEN); ? ? ? ? 如果需要平均分配设置: 3.范围约定 配置说明: 上面columns 标识将要分片的表字段,algorithm 分片函数, rang-long 函数中mapFile代表配置文件路径 所有的节点配置都是从0开始,及0代表节点1,此配置非常简单,即预先制定可能的id范围到某个分片 4.求模法 配置说明: 上面columns 标识将要分片的表字段,algorithm 分片函数, 此种配置非常明确即根据id进行十进制求模预算,相比方式1,此种在批量插入时需要切换数据源,id不连续 5.日期列分区法 配置说明: 上面columns 标识将要分片的表字段,algorithm 分片函数, 配置中配置了开始日期,分区天数,即默认从开始日期算起,分隔10天一个分区 Assert.assertEquals(true, 0 == partiti

文档评论(0)

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

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

1亿VIP精品文档

相关文档