Druid series---[druid connection pool common configuration]

Common configuration of druid connection pool

Method 1 (yml configuration)

datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3307/home-finance?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8
    username: root
    password: admin
    # 数据源其它配置
    druid:
      #避免db单方面关闭连接,如mysql:show variables like '%timeout%',关注interactive_timeout和wait_timeout,默认8小时
      #常见错误:The last packet successfully received from the server was 46170 milliseconds ago
      #解决办法:1.miEvictableIdleTimeMillis < maxEvictableIdleTimeMillis
      #        2.maxEvictableIdleTimeMillis + timeBetweenEvictionRunsMillis < 8h
      initial-size: 5  #初始化连接池大小
      min-idle: 3     #最小连接数
      max-active: 20   #最大连接数
      max-wait: 60000  #最长等待时间
      #单位:ms,默认1min,两个作用
      #1.Destroy线程运行周期,每隔多久运行一次,配合min-evictable-idle-time-millis和max-evictable-idle-time-millis使用;
      #2.若testWhileIdle为true,申请连接时,若空闲时间大于time-between-eviction-runs-millis,则执行validation-query语句检测连接是否有效。
      time-between-eviction-runs-millis: 6000  #关闭空闲连接间隔(ms)
      # 单位:ms,连接保持空闲而不被驱逐的最小时间,默认30min
      #连接被destroy线程关闭条件:大于minIdle且空闲时间大于1800000
      min-evictable-idle-time-millis: 1800000
      # 单位:ms,连接保持空闲而不被驱逐的最大时间,默认7h
      #连接被destroy线程关闭条件:空闲时间只要大于25200000就关闭连接,不管池中连接数是否大于minIdle
      max-evictable-idle-time-millis: 25200000
      validation-query: SELECT 1               #数据库状态检测
      test-while-idle: true                    #判断连接是否可用
      test-on-borrow: false                    #在获得连接前是否要进行测试
      test-on-return: false                    #在归还连接前是否要进行测试
      pool-prepared-statements: false          #不缓存pstmt,oracle可以配true
      max-pool-prepared-statement-per-connection-size: 20 #配置pstmt缓存个数
      filters: stat,wall,slf4j
      #配置servlet,开启druid登录页和首页
      stat-view-servlet:
        enabled: true
        login-username: admin
        login-password: admin
        #监控页面访问路径
        url-pattern: /druid/*
        #是否允许重置,一般不允许
        reset-enable: false
        #白名单
        allow: 127.0.0.1
        #黑名单
        deny: 192.168.0.1
      web-stat-filter:
        enabled: true
        url-pattern: /*
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
        session-stat-enable: true
      #配置druid过滤器
      filter:
        #sql监控规则过滤器
        stat:
          enabled: true
          #慢sql阈值,单位ms
          slow-sql-millis: 3000
          #同一个sql,是否允许不同参数合并为一条记录
          merge-sql: true
        #防火墙过滤器
        wall:
          enabled: true
          config:
            #是否允许执行delete语句
            #delete-allow: false
          db-type: mysql
        #日志过滤器,配合logback或log4j使用,在xml中配置上下面的logger
        slf4j:
          enabled: true
          statement-executable-sql-log-enable: true
#          <logger name="druid.sql" level="debug" additivity="false">
#          <appender-ref ref="stdout"/>
#          </logger>

Guess you like

Origin blog.csdn.net/weixin_44988127/article/details/131239318