Cobar路由算法

作者: Better朔 | 来源:发表于2018-04-26 14:38 被阅读0次

单维路由

(单维路由根据单个路由字段值判断SQL应当分发到哪个分库执行)

        将[0-1023]分为不同的区段,每个区段代表一个分库,其中区段的个数以及每个区段的长度由用户自定义;

        用SQL中的拆分字段值对1024取模,结果落入哪个区段,SQL便被路由到那个分库执行(如果拆分字段不是数值类型,则首先做一次hash)

基本示例

        假设现在需要将一张表平均拆分到4个分库,路由字段为字符串类型。

        首先将[0-1023]平均分为4个区段,[0-255],[256-511],[512-767],[768-1023], 然后对字符串(或子串,由用户自定义)做hash, hash结果对1024取模,最终得出的结果落入那个区段,便路由到哪个分库。

    在Cobar配置中,我们把区段的个数成为partitionCount, 每个区段的长度为partitionLength,满足∑(partitionCount* partitionLength) = 1024。

function定义如下:

function定义

ps.从笔记上贴过来乱码,不知道是不是特殊字符的问题~请原谅哈

假如路由字段是数值类型,按照如下配置

扩容

        这种路由方法可以很容易实现扩容,假设现在需要将4个分库扩容为8个分库,只需要将[0-1023]平分为8个区段即可,如下:

不均匀分布

    如果需要不均匀分库,则将[0-1023]分成不均匀的区段即可:

多维路由自定义路由算法

        用户可以自定义路由算法,具体可以参照com.alibaba.cobar.route.function.PartitionByLong或者com.alibaba.cobar.route.function.PartitionByString编写代码

相关文章

  • Cobar路由算法

    单维路由 (单维路由根据单个路由字段值判断SQL应当分发到哪个分库执行) 将[0-1023]分为不同的区段,每个区...

  • 网络协议补完计划--路由协议

    目录 前言 路由表 路由器工作原理 路由表的建立 路由协议分类根据作用域来分类根据路由算法来分类 路由算法的特点 ...

  • 路由选择协议——RIP协议

    前言 从本文开始介绍路由选择协议,也就是讨论路由表中的路由是怎么形成的。本文内容 1 路由算法分类 从路由算法能否...

  • Cobar

    一、背景介绍 在MySQL数据库中,由于表的越来越大,导致了在单机环境下的性能下降,所以采用中间件对大表进...

  • MK-Cobar单点部署测试

    Cobar简介(了解) 分布式: Cobar的分布式主要是通过将表放入不同的库来实现: 1. Cobar支持将一张...

  • 计算机网络_6

    讲了路由器的选路,路由器之间的选路协议。讲了rip协议,有矢量距离算法和spf算法,还讲了ospf算法。还有网络的...

  • 路由算法

    路由控制有各种各样的算法,其中最具代表性的有两种,是距离向量算法和链路状态算法。 1.距离向量算法 距离向量算...

  • 路由算法

    路由算法是网络层软件的一部分。子网提供数据报服务,每个包都要做路由选择;子网提供虚电路服务,只需在建立连接时做一次...

  • 2018-04-08

    路由算法 1.非自适应路由选择 固定路由 洪泛法等。 2.自适应路由选择 烫熟土豆法、分布式路由等

  • ElasticSearch第14节script脚本、数据路由

    数据路由 es判断决定文档数据存储在哪个分片上的过程叫数据路由。 路由算法:sard=hash(routing) ...

网友评论

    本文标题:Cobar路由算法

    本文链接:https://www.haomeiwen.com/subject/dloplftx.html