Skip to content

[新特性] 2023.0.3.3版本支持应用访问数据库连接池参数运行时无损轮转 #4024

@shiyiyue1102

Description

@shiyiyue1102

一.功能特性:

spring cloud alibaba 2023.0.3.3版本和开源数据库连接池组件druid &开源配置中心实现应用访问数据的连接池参数运行时无损轮转。

  1. 账号密码运行时无损替换
  2. 连接池大小的动态调整
  3. 连接请求超时时间queryTimeout
  4. 错误连接地址及账号密码异常保护
  5. 其他druid连接池参数运行时修改

二.与开源组件Druid&Nacos生态整合实现0代码改造接入

spring-cloud-alibaba版本:2023.0.3.3
druid :1.2.27

接入步骤:

  1. 升级druid及spring cloud alibaba nacos config版本

     <dependency>
     	<groupId>com.alibaba</groupId>
     	<artifactId>druid-spring-boot-3-starter</artifactId>
     	<version>1.2.27</version>
     </dependency>
    
     <dependency>
     	<groupId>com.alibaba</groupId>
     	<artifactId>druid</artifactId>
     	<version>1.2.27</version>
     </dependency>
    
     <dependency>
     	<groupId>com.alibaba.cloud</groupId>
     	<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
     	<version>2023.0.3.3</version>
     </dependency>
    

2.在Nacos创建数据源配置, dataId=druid-datasource.properties,group=nacos-datasource
内容如下:

      spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
      spring.datasource.url=jdbc:mysql://{dbhost}:{dbport}/{dbname}
      spring.datasource.username={username}
      spring.datasource.password={password}
      spring.datasource.druid.maxWait=5000
      spring.datasource.druid.maxActive=20
      spring.datasource.druid.minIdle=15
      spring.datasource.druid.initialSize=7
      spring.datasource.druid.queryTimeout=6

*dataId可自定义,group需固定为nacos-datasource,配置内容的参数请按实际情况进行替换

3.应用侧application.properties引入配置

#将数据源配置导入Spring,初始化数据源
spring.config.import[0]=optional:nacos:druid-datasource.properties?group=nacos-datasource

#指定Nacos地址,请按需修改
spring.cloud.nacos.config.server-addr={nacos server addr}
#Nacos 命名空间ID
spring.cloud.nacos.config.namespace={nacos namespace id}

#打开 druid 运行时轮转开关
spring.nacos.config.proxy.druid.enabled=true
#指定轮转关联的nacos 配置dataId
spring.nacos.config.proxy.druid.data-id=druid-datasource.properties

*nacos地址请按实际情况进行修改

4.重启应用

修改nacos中的数据源 用户密码,连接池参数,超时时间参数,观察应用运行时指标,结合数据库会话监控确认在线连接正常替换。

三. 结合MSE Nacos企业版+密钥管理服务KMS实现企业级数据源配置安全保护

  1. 符合《国家安全二级等保2.0标准》
  2. KMS实现RDS/Polardb数据库账号密码的自动托管&定时轮转
  3. 支持多种数据库DS/Polardb引擎,包括Mysql,Sql Server,PostgreSQL,MariaDB,Oracle等
  4. MSE Nacos企业版对数据源参数的加密存储及运行时推送

接入指引:Spring应用RDS数据源账密运行时轮转

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions