zoukankan      html  css  js  c++  java
  • SpringBoot Druid 配置详解

    SpringBoot Druid 配置详解

    spring:
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://${url}:${port}/${数据库名}?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true&useAffectedRows=true
        username: ${username}
        password: ${password}
      druid:
          initial-size: 10 # 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
          min-idle: 10 # 最小连接池数量
          maxActive: 200 # 最大连接池数量
          maxWait: 60000 # 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置
          timeBetweenEvictionRunsMillis: 60000 # 关闭空闲连接的检测时间间隔.Destroy线程会检测连接的间隔时间,如果连接空闲时间大于等于minEvictableIdleTimeMillis则关闭物理连接。
          minEvictableIdleTimeMillis: 300000 # 连接的最小生存时间.连接保持空闲而不被驱逐的最小时间
          validationQuery: SELECT 1 FROM DUAL # 验证数据库服务可用性的sql.用来检测连接是否有效的sql 因数据库方言而差, 例如 oracle 应该写成 SELECT 1 FROM DUAL
          testWhileIdle: true # 申请连接时检测空闲时间,根据空闲时间再检测连接是否有效.建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRun
          testOnBorrow: false # 申请连接时直接检测连接是否有效.申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
          testOnReturn: false # 归还连接时检测连接是否有效.归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
          poolPreparedStatements: true # 开启PSCache
          maxPoolPreparedStatementPerConnectionSize: 20 #设置PSCache值
          connectionErrorRetryAttempts: 3 # 连接出错后再尝试连接三次
          breakAfterAcquireFailure: true # 数据库服务宕机自动重连机制
          timeBetweenConnectErrorMillis: 300000 # 连接出错后重试时间间隔
          asyncInit: true # 异步初始化策略
          remove-abandoned: true # 是否自动回收超时连接
          remove-abandoned-timeout: 1800 # 超时时间(以秒数为单位)
          transaction-query-timeout: 6000 # 事务超时时间
          filters: stat,wall,log4j2
          connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
          web-stat-filter:
            enabled: true
            url-pattern: "/*"
            exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
          stat-view-servlet:
            url-pattern: "/druid/*"
            allow:
            deny:
            reset-enable: false
            login-username: admin
            login-password: admin
    

    druid监控数据的外部化调用

    @RestController
    public class DruidStatController {
        @GetMapping("/stat")
        public Object druidStat() {
            // DruidStatManagerFacade#getDataSourceStatDataList 该方法可以获取所有数据源的监控数据
            return DruidStatManagerFacade.getInstance().getDataSourceStatDataList();
        }
    }
    

    赵小胖个人博客

  • 相关阅读:
    怎样看文献
    How to save rules of the iptables?
    Keras 自适应Learning Rate (LearningRateScheduler)
    在主线程中慎用WaitForSingleObject (WaitForMultipleObjects)
    QT5.9 新特性与版本回顾
    [常见问题]解决创建servlet 找不到webservlet包.
    MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合
    MyBatis学习总结(七)——Mybatis缓存
    MyBatis学习总结(六)——调用存储过程
    MyBatis学习总结(五)——实现关联表查询
  • 原文地址:https://www.cnblogs.com/Sky0914/p/12561448.html
Copyright © 2011-2022 走看看