程序员

SpringBoot整合ShardingSphere,实现分库分

2020-06-22  本文已影响0人  一枚路过的程序猿

阅读必知

本文只介绍SpringBoot如何整合ShardingSphere的主要配置及实现

版本介绍

SpringBoot : 2.3.0.RELEASE
MyBatis-Plus : 3.3.0
ShardingSphere : 4.0.0
MySql : 5.7

pom主要依赖

    <!--sharding-jdbc-->
    <dependency>
        <groupId>org.apache.shardingsphere</groupId>
        <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
        <version>4.0.0</version>
    </dependency>
    <!--Mybatis-plus-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.3.0</version>
    </dependency>
    <!--德鲁伊-->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.0.31</version>
    </dependency>
    <!-- mysql的依赖 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>

配置文件(ShardingSphere)

server:
  port:8002
#应用名称
application:
  name:shardingSphere-demo
spring:
#日期格式化
jackson:
  date-format:yyyy-MM-dd HH:mm:ss
  time-zone:GMT+8
#Sharding-jdbc
shardingsphere:
  datasource:
    #指定数据源
    names: m0,m1
    m0:
      type: com.alibaba.druid.pool.DruidDataSource
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://192.168.101.1:3306/master?useUnicode=true&characterEncoding=utf-8&useSSL=false
      username: root
      password:
    m1:
      type: com.alibaba.druid.pool.DruidDataSource
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://192.168.101.2:3306/slave?useUnicode=true&characterEncoding=utf-8&useSSL=false
      username: root
      password:
  sharding:
    tables:
      #配置需要水平分表的表
      user:
        #指定数据库表的数据分布情况,配置数据节点
        ##actual-data-nodes: m$->{1..2}.t_user_$->{0..1} user_0 user_1
        actual-data-nodes: ds0.user_$->{0..1}
        key-generator:
          #配置主键
          column: id
          #主键采用雪花算法
          type: SNOWFLAKE
        #配置分库策略
        database-strategy:
          inline:
            sharding-column: id
            #此处配置下面主从分离起的key名称
            algorithm-expression: ds0
        #配置表的分片策略,包括分片键和分片算法
        table-strategy:
          inline:
            #配置分表建
            sharding-column: id
            #此处配置水平分表策略,user_$->{id % 2}相当于user_0,user_1
            algorithm-expression: user_$->{id % 2}
    #配置主从数据库 一主多从  map
    master-slave-rules:
      ds0:
        #配置主库
        master-data-source-name:m0
        #配置从库
        slave-data-source-names:m1
  #显示Sql
  props:
    sql:
      show:true
  
,
上一篇下一篇

猜你喜欢

热点阅读