springboot+shardingsphere+druid实现数据库读写分离

1.引入依赖

 <dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
            <version>4.1.1</version>
  </dependency>
  <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.4</version>
   </dependency>

2.yml文件配置

spring:
  shardingsphere:
    enabled: true # 是否启用sharding,不启用时使用datasource配置的数据源
    datasource:
      names: master,slave0 # 节点名称,多个时使用逗号隔开
      master:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name:  com.mysql.jdbc.Driver
        url: jdbc:mysql://172.16.200.106:3306/password_admin?useUnicode=true&characterEncoding=utf-8
        username: root
        password: root@123
        # 以下为druid配置,可以共用datasource中的druid配置,需要覆盖时再重新配置
        filters: stat,wall,logback
        initial-size: 2
        max-active: 45
        min-idle: 6
      slave0:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://172.16.200.107:3306/password_admin?useUnicode=true&characterEncoding=utf-8
        username: root
        password: 123456
        # 以下为druid配置,可以共用datasource中的druid配置,需要覆盖时再重新配置
        filters: stat,wall,logback
        initial-size: 3
        max-active: 20
        min-idle: 8
    masterslave:
      name: ms
      master-data-source-name: master
      slave-data-source-names: slave0
    props:
      sql:
        show: true

3.启动失败:需要忽略druid连接池的默认数据源配置(@SpringBootApplication(exclude = {DruidDataSourceAutoConfigure.class})

4.测试插入数据使用主库

查询使用从库

 


版权声明:本文为jd_gogogo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。