shardingsphere 5.X自定义分片策略,自动刷新node,自动建表

本文介绍了如何在ShardingSphere 5.x 中实现自定义分片策略,包括单数据源和多数据源配置,以及如何动态刷新分片节点并自动建表。详细步骤包括设置pom依赖、数据源配置、分表策略定义和分片类的自定义。参考示例代码可以在提供的Gitee链接中找到。
摘要由CSDN通过智能技术生成

目录

一 、 引入pom依赖

 二、 数据源配置

        1. 单数据源

        2. 多数据源

三、分表配置

        1、自定义分表策略

四、动态刷新sharding分表节点

        1、自定义分片类

        2、自动刷新node,建表


一 、 引入pom依赖

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

 二、 数据源配置

        1. 单数据源

spring:
  shardingsphere:
    datasource:
      names: db0
      db0:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://${LOPMARTECH_MYSQL}:3306/dbName?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&failOverReadOnly=false
        username: root
        password: 123456

        2. 多数据源

spring:
  shardingsphere:
    datasource:
      names: db0,db1
      db0:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://${LOPMARTECH_MYSQL}:3306/dbName?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&failOverReadOnly=false
        username: root
        password: 123456
      db1:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://${LOPMARTECH_MYSQL}:3306/dbName?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&failOverReadOnly=false
        username: root
        password: 123456

三、分表配置

        1、自定义分表策略

spring:
  shardingsphere:
    datasource:
      names: db0
      db0:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://${LOPMARTECH_MYSQL}:3306/dbName?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&failOverReadOnly=false
        username: root
        password: 123456
    rules: 
      sharding:
        tables:  #表名
          <tableName>:
            actual-data-nodes: db0.<tableName>_${'20220709'} #分表后需要使用的表
            table-strategy:  #分表策略配置
              standard:
                sharding-column: create_time  #分表字段
                shardingAlgorithmName: createtime-day  #分片算法名称
        sharding-algorithms:  
          createtime-day:  #分片算法名称
            type: CLASS_BASED  # 分片算法配置:自定义类
            props: 
  
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值