Kevin's blog Kevin's blog
首页
  • AI基础
  • RAG技术
  • 提示词工程
  • Wireshark抓包
  • 常见问题
  • 数据库
  • 代码技巧
  • 浏览器
  • 手册教程
  • 技术应用
  • 流程规范
  • github技巧
  • git笔记
  • vpn笔记
  • 知识概念
  • 学习笔记
  • 环境搭建
  • linux&运维
  • 微服务
  • 经验技巧
  • 实用手册
  • arthas常用
  • spring应用
  • javaAgent技术
  • 网站
友情链接
  • 分类
  • 标签
  • 归档

Kevin

你可以迷茫,但不可以虚度
首页
  • AI基础
  • RAG技术
  • 提示词工程
  • Wireshark抓包
  • 常见问题
  • 数据库
  • 代码技巧
  • 浏览器
  • 手册教程
  • 技术应用
  • 流程规范
  • github技巧
  • git笔记
  • vpn笔记
  • 知识概念
  • 学习笔记
  • 环境搭建
  • linux&运维
  • 微服务
  • 经验技巧
  • 实用手册
  • arthas常用
  • spring应用
  • javaAgent技术
  • 网站
友情链接
  • 分类
  • 标签
  • 归档
  • 手册教程

  • 技术应用

    • 工作杂货

      • Jprofiler排查
      • ES查询压测
      • 阿尔萨斯(Arthas)
      • 定时任务
      • DruidDataSource配置
        • Spring Cloud Stream
        • 线上Tomcat配置参考
        • 配置Prometheus及健康检测
        • Feign远程调用
        • Hystrix单方法熔断配置
        • 本地开发联调配置
        • Java代码杂记
        • SQL脚本杂记
        • 批量算费本地工具类
        • Apollo配置模糊查询
        • 开发问题记录
        • 机器配置参考
      • 技巧备忘

    • 流程规范

    • GitHub技巧

    • VPN

    • Git笔记

    • 实用手册
    • 技术应用
    • 工作杂货
    luoxiaofeng
    2022-05-05
    目录

    DruidDataSource配置

    # DruidDataSource通用配置参考

    JDBC配置:

    spring.datasource.druid.url= # 或spring.datasource.url= 
    spring.datasource.druid.username= # 或spring.datasource.username=
    spring.datasource.druid.password= # 或spring.datasource.password=
    spring.datasource.druid.driver-class-name= #或 spring.datasource.driver-class-name=
    
    1
    2
    3
    4

    连接池配置:

    spring.datasource.druid.initial-size=
    spring.datasource.druid.max-active=
    spring.datasource.druid.min-idle=
    spring.datasource.druid.max-wait=
    spring.datasource.druid.pool-prepared-statements=
    spring.datasource.druid.max-pool-prepared-statement-per-connection-size= 
    spring.datasource.druid.max-open-prepared-statements= #和上面的等价
    spring.datasource.druid.validation-query=
    spring.datasource.druid.validation-query-timeout=
    spring.datasource.druid.test-on-borrow=
    spring.datasource.druid.test-on-return=
    spring.datasource.druid.test-while-idle=
    spring.datasource.druid.time-between-eviction-runs-millis=
    spring.datasource.druid.min-evictable-idle-time-millis=
    spring.datasource.druid.max-evictable-idle-time-millis=
    spring.datasource.druid.filters= #配置多个英文逗号分隔
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16

    监控配置:

    # WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter
    spring.datasource.druid.web-stat-filter.enabled= #是否启用StatFilter默认值false
    spring.datasource.druid.web-stat-filter.url-pattern=
    spring.datasource.druid.web-stat-filter.exclusions=
    spring.datasource.druid.web-stat-filter.session-stat-enable=
    spring.datasource.druid.web-stat-filter.session-stat-max-count=
    spring.datasource.druid.web-stat-filter.principal-session-name=
    spring.datasource.druid.web-stat-filter.principal-cookie-name=
    spring.datasource.druid.web-stat-filter.profile-enable=
    
    # StatViewServlet配置,说明请参考Druid Wiki,配置_StatViewServlet配置
    spring.datasource.druid.stat-view-servlet.enabled= #是否启用StatViewServlet(监控页面)默认值为false(考虑到安全问题默认并未启动,如需启用建议设置密码或白名单以保障安全)
    spring.datasource.druid.stat-view-servlet.url-pattern=
    spring.datasource.druid.stat-view-servlet.reset-enable=
    spring.datasource.druid.stat-view-servlet.login-username=
    spring.datasource.druid.stat-view-servlet.login-password=
    spring.datasource.druid.stat-view-servlet.allow=
    spring.datasource.druid.stat-view-servlet.deny=
    
    # Spring监控配置,说明请参考Druid Github Wiki,配置_Druid和Spring关联监控配置
    spring.datasource.druid.aop-patterns= # Spring监控AOP切入点,如x.y.z.service.*,配置多个英文逗号分隔
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21

    参考配置:

    pom.xml

            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
                <version>${dynamic-ds.version}</version>
                <exclusions>
                	<exclusion>
                        <groupId>com.zaxxer</groupId>
    	    <artifactId>HikariCP</artifactId>	
                	</exclusion>
                </exclusions>
            </dependency>
    
           <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>1.1.23</version>
            </dependency>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17

    apollo配置:

    spring:
      autoconfigure:
        exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
      datasource:
        dynamic:
          primary: main
          datasource:
            main:
              driverClassName: oracle.jdbc.driver.OracleDriver
              url: jdbc:oracle:thin:@127.0.0.1:1521:orcl  #修改
              username: xxx #修改
              password: xxx #修改
              type: com.alibaba.druid.pool.DruidDataSource
            query:
              driverClassName: oracle.jdbc.driver.OracleDriver
              url: jdbc:oracle:thin:@127.0.0.1:1521:orcl #修改
              username: xxx #修改
              password: xxx #修改
              type: com.alibaba.druid.pool.DruidDataSource
          druid:
            initial-size: 5
            min-idle: 1
            max-active: 20
            max-wait: 60000
            time-between-eviction-runsMillis: 60000
            min-evictable-idle-timeMillis: 300000
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26

    参考代码:

    private void configDruidParams(DruidDataSource druidDataSource){
            druidDataSource.setMaxActive(20);
            druidDataSource.setInitialSize(1);
            // 配置获取连接等待超时的时间
            druidDataSource.setMaxWait(10000);
            druidDataSource.setMinIdle(1);
            // 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            druidDataSource.setTimeBetweenEvictionRunsMillis(60000);
            // 配置一个连接在池中最小生存的时间,单位是毫秒 超过这个时间每次会回收默认3个连接
            druidDataSource.setMinEvictableIdleTimeMillis(30000);
            // 线上配置的mysql断开闲置连接时间为1小时,数据源配置回收时间为3分钟,以最后一次活跃时间开始算
            druidDataSource.setMaxEvictableIdleTimeMillis(180000);
            // 连接最大存活时间,默认是-1(不限制物理连接时间),从创建连接开始计算,如果超过该时间,则会被清理
            druidDataSource.setPhyTimeoutMillis(15000);
            druidDataSource.setValidationQuery("select 1");
            druidDataSource.setTestWhileIdle(true);
            druidDataSource.setTestOnBorrow(false);
            druidDataSource.setTestOnReturn(false);
            druidDataSource.setPoolPreparedStatements(true);
            druidDataSource.setMaxOpenPreparedStatements(20);
            druidDataSource.setUseGlobalDataSourceStat(true);
            druidDataSource.setKeepAlive(true);
            druidDataSource.setRemoveAbandoned(true);
            druidDataSource.setRemoveAbandonedTimeout(180);
            try{
            druidDataSource.setFilters("stat,slf4j");
            List filterList=new ArrayList<>();
            filterList.add(wallFilter());
            druidDataSource.setProxyFilters(filterList);
            }catch(SQLException e){
            e.printStackTrace();
            }
            }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    上次更新: 2022/10/24, 18:37:43
    定时任务
    Spring Cloud Stream

    ← 定时任务 Spring Cloud Stream→

    最近更新
    01
    AI是如何学习的
    06-05
    02
    chatGpt提示原则
    06-05
    03
    提示词工程实践指南
    06-05
    更多文章>
    | Copyright © 2022-2025 Kevin | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式