0

0

ShardingSphere的路由引擎在Java开发中有哪些类型?

王林

王林

发布时间:2023-05-08 21:55:08

|

1163人浏览过

|

来源于亿速云

转载

    ShardingSphere的路由引擎类型

    本篇文章源码基于4.0.1版本

    ShardingSphere在路由流程过程中,根据不同类型的SQL会现在不同的路由引擎,而ShardingSphere支持的路由规则也很多了,包括广播(broadcast)路由、混合(complex)路由、默认数据库(defaultdb)路由、无效(ignore)路由、标准(standard)路由以及单播(unicast)路由等等,那么具体这些路由规则对应的是什么路由引擎呢?今天我们就聊聊这个。

    路由引擎类型

    RoutingEngineFactory 用来创建路由引擎的实例,对应的是它的newInstance()方法,根据Sql语句SQLStatement对象的类型选择不同的路由引擎,有

    全库广播路由引擎DatabaseBroadcastRoutingEngine、

    全库表广播路由引擎TableBroadcastRoutingEngine、

    立即学习Java免费学习笔记(深入)”;

    无效路由引擎IgnoreRoutingEngine、

    默认数据库路由引擎DefaultDatabaseRoutingEngine(对默认的数据库进行路由)、

    单播路由引擎UnicastRoutingEngine(单播路由只需要在任何数据库的任何表中获取就可以,相当于获取表中公有信息)、

    数据源组的广播路由引擎DataSourceGroupBroadcastRoutingEngine、

    数据库主库实例的广播路由引擎MasterInstanceBroadcastRoutingEngine(这个就是针对主库进行的操作,比如一些授权的SQL语句)

    笛卡尔路由引擎CartesianRoutingEngine、

    hstshop鸿思特商城系统
    hstshop鸿思特商城系统

    鸿思特商城系统HstShop是一款B2C独立网店系统,由拥有十年互联网开发经验的牛头带队开发完成,完全免费开源,适合大中型网站平台快速构建立强大的网上商城平台网店系统。HstShop悉心听取每一位商家的需求与建议,根据中国人的购物习惯改进了购物流程,实现更好的用户购物体验。HstShop网店系统无论在产品功能、稳定性、执行效率、负载能力、安全性和搜索引擎优化等方面都居国内同类产品领先地位,成为国内

    下载

    混合路由引擎ComplexRoutingEngine、

    标准路由引擎StandardRoutingEngine

    标准路由

    标准路由是ShardingSphere推荐使用的一种分片路由策略,在进行分片表只有一个或者分片表是绑定关系,这个绑定关系是在配置文件中定义的,比如如下配置:

    shardingRule:
      bindingTables: 
         table1,table2

    这个配置文件会解析成BindingTableRule集合,在进行判断绑定关系的时候根据逻辑表名获取BindingTableRule对象,判断是否在集合中,如果有就表明存在绑定关系

    路由逻辑

    路由逻辑在StandardRoutingEngine的route()中体现,具体逻辑是分两步走,先获取数据节点,在生成路由结果,获取路由接点对应StandardRoutingEngine的getDataNodes()方法:

        private CollectionzuojiankuohaophpcnDataNodeyoujiankuohaophpcn getDataNodes(final TableRule tableRule) {
            if (isRoutingByHint(tableRule)) {
                return routeByHint(tableRule);
            }
            if (isRoutingByShardingConditions(tableRule)) {
                return routeByShardingConditions(tableRule);
            }
            return routeByMixedConditions(tableRule);
        }
    • 如果是基于Hint的路由,具体就判断分片策略是否为HintShardingStrategy对象,调用routeByHint()方法

    • 如果是分片条件的路由,调用isRoutingByShardingConditions()方法

    • 否则就调用复合条件的路由

    这三种情况都会调用route0()方法,先进行数据源的路由,再进行表的路由,生成数据节点

    相关文章

    java速学教程(入门到精通)
    java速学教程(入门到精通)

    java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    相关标签:

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    excel制作动态图表教程
    excel制作动态图表教程

    本专题整合了excel制作动态图表相关教程,阅读专题下面的文章了解更多详细教程。

    20

    2025.12.29

    freeok看剧入口合集
    freeok看剧入口合集

    本专题整合了freeok看剧入口网址,阅读下面的文章了解更多网址。

    65

    2025.12.29

    俄罗斯搜索引擎Yandex最新官方入口网址
    俄罗斯搜索引擎Yandex最新官方入口网址

    Yandex官方入口网址是https://yandex.com;用户可通过网页端直连或移动端浏览器直接访问,无需登录即可使用搜索、图片、新闻、地图等全部基础功能,并支持多语种检索与静态资源精准筛选。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    197

    2025.12.29

    python中def的用法大全
    python中def的用法大全

    def关键字用于在Python中定义函数。其基本语法包括函数名、参数列表、文档字符串和返回值。使用def可以定义无参数、单参数、多参数、默认参数和可变参数的函数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    16

    2025.12.29

    python改成中文版教程大全
    python改成中文版教程大全

    Python界面可通过以下方法改为中文版:修改系统语言环境:更改系统语言为“中文(简体)”。使用 IDE 修改:在 PyCharm 等 IDE 中更改语言设置为“中文”。使用 IDLE 修改:在 IDLE 中修改语言为“Chinese”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    16

    2025.12.29

    C++的Top K问题怎么解决
    C++的Top K问题怎么解决

    TopK问题可通过优先队列、partial_sort和nth_element解决:优先队列维护大小为K的堆,适合流式数据;partial_sort对前K个元素排序,适用于需有序结果且K较小的场景;nth_element基于快速选择,平均时间复杂度O(n),效率最高但不保证前K内部有序。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    12

    2025.12.29

    php8.4实现接口限流的教程
    php8.4实现接口限流的教程

    PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    134

    2025.12.29

    抖音网页版入口在哪(最新版)
    抖音网页版入口在哪(最新版)

    抖音网页版可通过官网https://www.douyin.com进入,打开浏览器输入网址后,可选择扫码或账号登录,登录后同步移动端数据,未登录仅可浏览部分推荐内容。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    63

    2025.12.29

    快手直播回放在哪看教程
    快手直播回放在哪看教程

    快手直播回放需主播开启功能才可观看,主要通过三种路径查看:一是从“我”主页进入“关注”标签再进主播主页的“直播”分类;二是通过“历史记录”中的“直播”标签页找回;三是进入“个人信息查阅与下载”里的“直播回放”选项。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    18

    2025.12.29

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Kotlin 教程
    Kotlin 教程

    共23课时 | 2.1万人学习

    C# 教程
    C# 教程

    共94课时 | 5.6万人学习

    Java 教程
    Java 教程

    共578课时 | 39.7万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号