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

    相关专题

    更多
    Golang 性能分析与pprof调优实战
    Golang 性能分析与pprof调优实战

    本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

    3

    2026.01.22

    html编辑相关教程合集
    html编辑相关教程合集

    本专题整合了html编辑相关教程合集,阅读专题下面的文章了解更多详细内容。

    41

    2026.01.21

    三角洲入口地址合集
    三角洲入口地址合集

    本专题整合了三角洲入口地址合集,阅读专题下面的文章了解更多详细内容。

    22

    2026.01.21

    AO3中文版入口地址大全
    AO3中文版入口地址大全

    本专题整合了AO3中文版入口地址大全,阅读专题下面的的文章了解更多详细内容。

    292

    2026.01.21

    妖精漫画入口地址合集
    妖精漫画入口地址合集

    本专题整合了妖精漫画入口地址合集,阅读专题下面的文章了解更多详细内容。

    79

    2026.01.21

    java版本选择建议
    java版本选择建议

    本专题整合了java版本相关合集,阅读专题下面的文章了解更多详细内容。

    3

    2026.01.21

    Java编译相关教程合集
    Java编译相关教程合集

    本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

    14

    2026.01.21

    C++多线程相关合集
    C++多线程相关合集

    本专题整合了C++多线程相关教程,阅读专题下面的的文章了解更多详细内容。

    6

    2026.01.21

    无人机驾驶证报考 uom民用无人机综合管理平台官网
    无人机驾驶证报考 uom民用无人机综合管理平台官网

    无人机驾驶证(CAAC执照)报考需年满16周岁,初中以上学历,身体健康(矫正视力1.0以上,无严重疾病),且无犯罪记录。个人需通过民航局授权的训练机构报名,经理论(法规、原理)、模拟飞行、实操(GPS/姿态模式)及地面站训练后考试合格,通常15-25天拿证。

    34

    2026.01.21

    热门下载

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

    精品课程

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

    共23课时 | 2.8万人学习

    C# 教程
    C# 教程

    共94课时 | 7.3万人学习

    Java 教程
    Java 教程

    共578课时 | 49.2万人学习

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

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