dynamic-datasource 多数据源 与druid合并实现读写分离主从复制;application.yml配置

导入依赖
<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>
排除原生druid配置
@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
@MapperScan("com.smart.spring.boot10.mapper")
public class SpringBoot10Application {
    public static void main(String[] args) {
        SpringApplication.run(SpringBoot10Application.class, args);
    }
}
application-druid.yml
spring:
  datasource:
    dynamic:
      primary: master #设置默认的数据源或者数据源组,默认值即为master
      strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.
      datasource:
        master:
          url: jdbc:mysql://120.25.121.220:8088/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
          username: root
          password: root
          driver-class-name: com.mysql.cj.jdbc.Driver
        slave:
          url: jdbc:mysql://120.25.121.220:8089/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
          username: root
          password: root
          driver-class-name: com.mysql.cj.jdbc.Driver
          druid:
              password: root
              username: root
              # 初始化连接大小
              initial-size: 5
              #最大连接池数量
              max-active: 20
              # 最小连接池数量
              min-idle: 3
              # 配置获取连接等待超时的时间 单位毫秒
              max-wait: 60000
              # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
              time-between-eviction-runs-millis: 60000
              # 配置一个连接在池中最小生存的时间,单位是毫秒
              min-evictable-idle-time-millis: 300000
              # 测试连接
              validation-query: select
              # 申请连接的时候检测,建议配置为true,不影响性能,并且保证安全性
              test-while-idle: true
              # 获取连接时执行检测,建议关闭,影响性能
              test-on-borrow: false
              # 归还连接时执行检测,建议关闭,影响性能
              test-on-return: false
              # 打开PSCache,并且指定每个连接上PSCache的大小
              pool-prepared-statements: true
              #      配置监控统计拦截器 防火墙 日志配置
              #      stat监控数据库性能
              #      wall  用于防火墙
              #      日志 slf4j logback
              #      log4j
              #      log4j2
              # 配置多个英文逗号分隔
              filters: stat,wall,slf4j

              max-pool-prepared-statement-per-connection-size: 20
              # 合并多个DruidDataSource的监控数据
              use-global-data-source-stat: true
              # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 SQL优化
              connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
              # ===========监控配置===========
              # WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter
              web-stat-filter:
                #是否启用StatFilter默认值false
                enabled: true
                # 拦截所有的
                url-pattern: /*
                # 排除一些不必要的url,比如*:js,/jslib/*等等:
                exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico, /druid/*"
                # 关闭和开启session 统计功能 默认关闭
                #        session-stat-enable: true
                # sessionStatMaxCount是1000个
                #        session-stat-max-count: 1000
                # 配置principalSessionName,使得druid能够知道当前的session的用户是谁
                #        principal-session-name:
                # StatViewServlet配置,说明请参考Druid Wiki,配置_StatViewServlet配置
              stat-view-servlet:
                # 是否启用StatViewServlet默认值true
                enabled: true
                url-pattern: /druid/*
                # 界面上有一个重置功能 执行这个操作之后,会导致所有计数器清零,重新计数 建议false
                reset-enable: false
                # 登录的后台的用户名,密码
                login-username: admin
                login-password: admin
下面还有一种.两种不同配置方式
spring:
  datasource:
    druid:
      stat-view-servlet:
        loginUsername: root
        loginPassword: root
    dynamic:
      datasource:
        master:
          username: root
          password: root
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://120.25.121.220:8088/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
          druid: #以下均为默认值
            initial-size: 3
            max-active: 8
            min-idle: 2
            max-wait: -1
            min-evictable-idle-time-millis: 30000
            max-evictable-idle-time-millis: 30000
            time-between-eviction-runs-millis: 0
            validation-query: select 1
            validation-query-timeout: -1
            test-on-borrow: false
            test-on-return: false
            test-while-idle: true
            pool-prepared-statements: true
            max-open-prepared-statements: 100
            filters: stat,wall
            share-prepared-statements: true
        slave:
          username: root
          password: root
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://120.25.121.220:8089/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
          druid: #以下均为默认值
            initial-size: 3
            max-active: 8
            min-idle: 2
            max-wait: -1
            min-evictable-idle-time-millis: 30000
            max-evictable-idle-time-millis: 30000
            time-between-eviction-runs-millis: 0
            validation-query: select 1
            validation-query-timeout: -1
            test-on-borrow: false
            test-on-return: false
            test-while-idle: true
            pool-prepared-statements: true
            max-open-prepared-statements: 100
            filters: stat,wall
            share-prepared-statements: true


HakariCP 集成mybatis-plus多数据源,实现主从复制,读写分离 配置文件 application-HikariCP.yml
spring:
  datasource:
    dynamic:
      primary: master #设置默认的数据源或者数据源组,默认值即为master
      strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.
      datasource:
        master:
          url: jdbc:mysql://120.25.121.220:8088/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
          username: root
          password: root
          driver-class-name: com.mysql.cj.jdbc.Driver
        slave:
          url: jdbc:mysql://120.25.121.220:8089/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
          username: root
          password: root
          driver-class-name: com.mysql.cj.jdbc.Driver

          hikari:
            type: com.zaxxer.hikari.HikariDataSource
            username: root
            password: root
            # 是客户端等待连接池连接的最大毫秒数
            connection-timeout: 30000
            # 是允许连接在连接池中空闲的最长时间
            minimum-idle: 10
            # 配置最大池大小
            maximum-pool-size: 65
            # 是允许连接在连接池中空闲的最长时间(以毫秒为单位)
            idle-timeout: 60000
            # 池中连接关闭后的最长生命周期(以毫秒为单位)
            max-lifetime: 600000
            # 配置从池返回的连接的默认自动提交行为。默认值为true。
            auto-commit: true
            # 连接池的名称
            pool-name: MyHikariCP
            # 开启连接监测泄露
            leak-detection-threshold: 5000
            # 测试连接数据库
            connection-test-query: SELECT 1

        mybatis-plus:
          mapper-locations: classpath:mapper/**/*.xml
          #分布id的选择
          global-config:
            db-config:
              id-type: auto
              #给实体类起别名
          type-aliases-package: com.smart.spring.boot.test.domain.entity
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值