sharding-jdbc 分库,分表,读写分离,绑定表,广播表,多数据源 关键配置项

spring:
  shardingsphere:
    props:
      sql:
        show: true # 是否开启SQL打印

    sharding:
      broadcast-tables: sys_dict_data,sys_dict_type # 广播表 也叫公共表,指所有的分片数据源中都存在的表,表结构和表中的数据在每个数据库中都完全一致.例如字典表.(broadcast-tables)
      binding-tables[0]: t_emp,t_bonus

      master-slave-rules:
        ds0:
          master-data-source-name: ds0
          slave-data-source-names: ds0-slave
        ds1:
          master-data-source-name: ds1
          slave-data-source-names: ds1-slave
        ds2:
          master-data-source-name: ds2
          slave-data-source-names: ds2-slave

      # 未配置分片规则的表 通过该配置的默认数据源寻找
      default-data-source-name: ds2
      default-database-strategy:
        inline:
          sharding-column: emp_id
          algorithm-expression: ds$->{emp_id % 3}

      tables:
        t_emp: # 配置该表下的分库分表规则
          key-generator:
            column: id
            type: SNOWFLAKE
          actual-data-nodes: ds$->{0..2}.t_emp_$->{0..1} # 配置该表分库与分表之间的映射逻辑
#          # 绑定表(binding-tables) 需要相同的[分库分片规则],因而此处 兼容t_bonus的分库分表规则
#          database-strategy: # 配置分库规则
#            inline:
#              sharding-column: salary # 配置该表分库依据的字段
#              algorithm-expression: ds$->{salary % 3} # 配置该表分库的策略
          table-strategy: # 配置分表规则
            inline:
              sharding-column: emp_id # 配置该表分表依据的字段
              algorithm-expression: t_emp_$->{emp_id % 2} # 配置该表分表的策
        t_bonus:
          key-generator:
            column: id
            type: SNOWFLAKE
          actual-data-nodes: ds$->{0..2}.t_bonus_$->{0..1} # 配置该表分库与分表之间的映射逻辑
          table-strategy: # 配置分表规则
            inline:
              sharding-column: emp_id # 配置该表分表依据的字段
              algorithm-expression: t_bonus_$->{emp_id % 2} # 配置该表分表的策

    datasource: # 数据源相关配置
      names: ds0,ds1,ds2,ds0-slave,ds1-slave,ds2-slave
      ds0:
        type: com.zaxxer.hikari.HikariDataSource
        driver-class-name: com.mysql.jdbc.Driver
        jdbc-url: jdbc:mysql://192.168.15.150:3306/ds0?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
        username: root
        password: root
      ds1:
        type: com.zaxxer.hikari.HikariDataSource
        driver-class-name: com.mysql.jdbc.Driver
        jdbc-url: jdbc:mysql://192.168.15.150:3306/ds1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
        username: root
        password: root
      ds2:
        type: com.zaxxer.hikari.HikariDataSource
        driver-class-name: com.mysql.jdbc.Driver
        jdbc-url: jdbc:mysql://192.168.15.150:3306/ds2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
        username: root
        password: root
      ds0-slave:
        type: com.zaxxer.hikari.HikariDataSource
        driver-class-name: com.mysql.jdbc.Driver
        jdbc-url: jdbc:mysql://192.168.15.151:3306/ds0?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
        username: root
        password: root
      ds1-slave:
        type: com.zaxxer.hikari.HikariDataSource
        driver-class-name: com.mysql.jdbc.Driver
        jdbc-url: jdbc:mysql://192.168.15.151:3306/ds1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
        username: root
        password: root
      ds2-slave:
        type: com.zaxxer.hikari.HikariDataSource
        driver-class-name: com.mysql.jdbc.Driver
        jdbc-url: jdbc:mysql://192.168.15.151:3306/ds2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
        username: root
        password: root
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值