springboot 接入shardingsphere-jdbc-core-spring-boot-starter

那知归不归發表於2024-11-11

環境 springboot+mybatis-plus+driud

注:druid引入方式請不要使用boot-starter方式

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

yml配置

  shardingsphere:
    mode:
      type: Standalone
    schema:
      name: multit-tenant
    props:
      sql-show: false
    datasource:
      # 配置真實資料來源
      names: ds0
      ds0: # 配置第 1 個資料來源
        type: ${spring.datasource.type}
        driver-class-name: ${spring.datasource.driverClassName}
        url: ${spring.datasource.url}
        username: ${spring.datasource.username}
        password: ${spring.datasource.password}
    rules: # 配置  表規則
      sharding:
        tables:
          user_operation_log: # 分表,表名
            # 配置分庫策略
            # 由資料來源名 + 表名組成,以小數點分隔。多個表以逗號分隔,支援inline表示式。預設表示使用已知資料來源與邏輯表名稱生成資料節點,用於廣播表(即每個庫中都需要一個同樣的表用於關聯查詢,多為字典表)或只分庫不分表且所有庫的表結構完全一致的情況
            actual-data-nodes: ds0.user_operation_log_$->{202411..202412}  #資料節點,均勻分佈
            table-strategy:  # 配置分表策略
              standard:
                sharding-column: create_time
                sharding-algorithm-name: table-inline
        # 配置 分片演算法
        sharding-algorithms:
          table-inline:
            type: INLINE
            props:
              algorithm-expression: user_operation_log_$->{create_time.toString().substring(0, 7).replace("-", "")}  #按模運算分配
              allow-range-query-with-inline-sharding: true

以上程式碼可正常執行

相關文章