文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【shardingsphere 5.x版本使用】,精准分表自定义策略配置,单库分表

2023-08-21 10:17

关注

之前有发过4.x版本的使用教程,这次项目升级了5.x版本,教程实战贴一下

1. 首先是maven依赖的添加

                <dependency>            <groupId>org.apache.shardingspheregroupId>            <artifactId>shardingsphere-jdbc-core-spring-boot-starterartifactId>            <version>5.1.2version>        dependency>

2. yaml的配置,只配置一个数据库,单库分表,使用精准自定义分片策略

1.2版本增加一个参数props,将分片策略和全限定类名配置在这个下面。
而且精准分片的接口StandardShardingAlgorithm实现类需要实现的方法也多了两个,getProps和

    @Override    public String doSharding(Collection<T> tableNames, PreciseShardingValue<T> preciseShardingValue) {        return null;    }    @Override    public Collection<String> doSharding(Collection<T> collection, RangeShardingValue<T> rangeShardingValue) {        return null;    }    @Override    public String getType() {        return null;    }// 新增方法,暂不知用处    @Override    public Properties getProps() {        return null;    }        // 新增方法 删除了原init();方法,多了个参数properties    @Override    public void init(Properties properties) {    }
spring:  main:    allow-bean-definition-overriding: true  shardingsphere:    # 是否启用 Sharding    enabled: true    # 打印sql    props:      sql-show: true    datasource:      names: master      master:        type: com.alibaba.druid.pool.DruidDataSource        driver-class-name: com.mysql.cj.jdbc.Driver        url: jdbc:mysql://localhost:3306/**?useSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8        username: root        password: root    rules:      sharding:        # 表策略配置        tables:          # terminal_heartbeat 是逻辑表          terminal_heartbeat:            actualDataNodes: master.**            tableStrategy:              # 使用标准分片策略              standard:                # 配置分片字段                shardingColumn: terminal_code                # 分片算法名称,不支持大写字母和下划线,否则启动就会报错                shardingAlgorithmName: time-sharding-altorithm        # 分片算法配置        shardingAlgorithms:          # 分片算法名称,不支持大写字母和下划线,否则启动就会报错          time-sharding-altorithm:            # 类型:自定义策略            type: CLASS_BASED            props:              # 分片策略              strategy: standard              # 分片算法类              algorithmClassName: com.****.ShardingAlgorithmA

3. 踩坑合集:

  1. ShardingJDBC 5.1.0使用druid连接池需要加dbcp依赖
<dependency>    <groupId>org.apache.tomcatgroupId>    <artifactId>tomcat-dbcpartifactId>    <version>10.0.16version>dependency>
  1. 与flyway一起使用时会报错,因为flyway会查询 information_schema.schemata 用户权限和数据库表集合等信息,而ShardingJDBC暂未支持
    官方回复5.1.1已支持pr地址:https://github.com/apache/shardingsphere/issues/16234

但是我已尝试还是无效,会报错org.apache.shardingsphere.infra.exception.SchemaNotExistedException: Schema ‘information_schema’ 不存在

解决方法:使用Sharding-proxy,或者禁用flyway

来源地址:https://blog.csdn.net/zzztimes/article/details/130007248

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯