美文网首页分库分表
6. SpringBoot整合ShardingJdbc分库分表+

6. SpringBoot整合ShardingJdbc分库分表+

作者: 茶还是咖啡 | 来源:发表于2020-05-14 07:49 被阅读0次

    基础信息请参照https://www.jianshu.com/p/865c18d006a5


    我们在master库中对user表进行水平拆分,按照用户性别对用户进行路由。

    用户表的ER图如下


    配置信息

    dataSources:
      ds_master: !!com.zaxxer.hikari.HikariDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        jdbcUrl: jdbc:mysql://10.241.241.20:6606/spark?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
        username: root
        password:
      ds_slave0: !!com.zaxxer.hikari.HikariDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        jdbcUrl: jdbc:mysql://10.241.241.20:6607/spark?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
        username: root
        password:
      ds_slave1: !!com.zaxxer.hikari.HikariDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        jdbcUrl: jdbc:mysql://10.241.241.20:6608/spark?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
        username: root
        password:
    shardingRule:
      masterSlaveRules:
        ms_ds0:
          masterDataSourceName: ds_master
          slaveDataSourceNames:
            - ds_slave0
            - ds_slave1
          loadBalanceAlgorithmType: ROUND_ROBIN
      tables:
        t_user:
          actualDataNodes: ms_ds0.t_user${0..1}
          tableStrategy:
            inline:
              shardingColumn: sex
              algorithmExpression: t_user${sex % 2}
          keyGenerator:
            type: SNOWFLAKE
            column: id
      bindingTables:
        - t_user
    props:
      sql.show: true
    

    配置数据源

    @Configuration
    public class DataSourceConfiguration {
    
        @Resource
        private ShardingDataSourceYamlConfig shardingDataSourceYamlConfig;
    
        @Bean
        @Primary
        public DataSource dataSource() throws IOException, SQLException {
            return YamlShardingDataSourceFactory.createDataSource(shardingDataSourceYamlConfig.getShardingFileByProfileActive());
        }
    }
    

    源码地址:https://github.com/xiao-ren-wu/sharding-all/tree/master/sub-read-write-split

    相关文章

      网友评论

        本文标题:6. SpringBoot整合ShardingJdbc分库分表+

        本文链接:https://www.haomeiwen.com/subject/qvlznhtx.html