多数据源处理-苞米豆-dynamic

微服务项目虽然每个服务可以单独使用一个库,但是某些特定服务,如调度中心服务,定时任务等,如果还是使用rpc或者fegin频繁进行远程调用,总感觉不是很合适

所以对单服务进行了多数据源处理

使用的是苞米豆的 dynamic-datasource-spring-boot-starter

<!-- dynamic 多数据源-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.0.0</version>
         </dependency>

整体架构是 mybatisplus+druid+dynamic+xxl-job

其实集成比较简单,不需要关系entity对应哪个库,自动识别的

配置文件如下

server:
  port: 18871

spring:
  application:
    name: cloud-schedule
  datasource:
    druid:
      stat-view-servlet:
        enabled: true
    dynamic:
      primary: dmsPro #设置默认的数据源或者数据源组,默认值即为master
      # 配置全局druid参数,请按需配置
      druid:
        initial-size: 10
        max-active: 100
        min-idle: 5
        max-wait: 6000
        validation-query: 'select 1'
        pool-prepared-statements: true
        max-pool-prepared-statement-per-connection-size: 100
      #dynamic开始多数据源配置
      datasource:
        dmsPro:
          username: xxx
          password: xxx
          url: xxx
          driver-class-name: xxx
        dmsDev:
         username: xxx
          password: xxx
          url: xxx
          driver-class-name: xxx
        ekp2Dev:
          username: xxx
          password: xxx
          url: xxx
          driver-class-name: xxx
management:
  endpoints:
    web:
      exposure:
        include: '*'


xxl:
  job:
    admin:
      addresses: http://xxx/xxl-job-admin
    accessToken:
    executor:
      appname: xxl-job-executor-Sap2Bi
      address:
      ip:
      port: -1
      logpath: /data/applogs/xxl-job/jobhandler
      logretentiondays: 30

#mybatis-plus
mybatis-plus:
  configuration:
    cache-enabled: false
    map-underscore-to-camel-case: true
  global-config:
    id-type: 0
    field-strategy: 0
    db-column-underline: true
    refresh-mapper: true
  typeAliasesPackage: com.xx.xx.executor.core.bean.entity
  mapper-locations: classpath:com/xx/xx/*/mapper/*.xml

logging:
  level:
    com.baomidou: debug

如配置文件,目前有3个库 dmsPro  dmsDev  ekp2Dev 

主库为dmsPro

 

多数据源处理代码:

1.druid去除默认配置

2.@DS注解使用

@DS注解标识会默认走标识的从库

未配置会走默认dmsPro主库

@DS可以标识在类和方法上,方法优先于类

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值