SpringBoot Druid配置过程图解

Druid是阿里开源的一个JDBC应用组件, 其包括三部分:

  • DruidDriver: 代理Driver,能够提供基于Filter-Chain模式的插件体系。
  • DruidDataSource: 高效可管理的数据库连接池。
  • SQLParser: 实用的SQL语法分析

通过Druid连接池中间件, 我们可以实现:

  • 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
  • 替换传统的DBCP和C3P0连接池中间件。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
  • 数据库密码加密。直接把数据库密码写在配置文件中,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
  • SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
  • 扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter-Chain机制,很方便编写JDBC层的扩展插件。

配置代码如下

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();
  }
}

图例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • springboot配置druid连接池的方法示例

    Druid的简介 Druid首先是一个数据库连接池.Druid是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBoss DataSource.Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验.Druid是阿里巴巴开发的号称为监控而生的数据库连接池! Druid的功能 1.替换DBCP和C3P0.Druid提供了一个高效.功能强大.可扩展性好的数据库连接池. 2.可以监控数据库

  • spring boot配置druid连接池的完整步骤

    Druid的简介 Druid首先是一个数据库连接池.Druid是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBoss DataSource.Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验.Druid是阿里巴巴开发的号称为监控而生的数据库连接池! Druid的功能 1.替换DBCP和C3P0.Druid提供了一个高效.功能强大.可扩展性好的数据库连接池. 2.可以监控数据库

  • SpringBoot使用Druid数据源的配置方法

    Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池(据说是目前最好的连接池) 一.依赖 为了测试,使用jdbcTemplate <!-- jdbcTemplate --> <dependency> <groupId>org.springframework.boot</groupId> <artifa

  • springboot 配置DRUID数据源的方法实例分析

    本文实例讲述了springboot 配置DRUID数据源的方法.分享给大家供大家参考,具体如下: druid 是阿里开源的数据库连接池. 开发时整合 druid 数据源过程. 1.修改pom.xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> &l

  • 通过springboot+mybatis+druid配置动态数据源

    一.建数据库和表 1.数据库demo1放一张user表 SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NU

  • SpringBoot开发案例之配置Druid数据库连接池的示例

    前言 好久没有更新Spring Boot系列文章,你说忙么?也可能是,前段时间的关注点也许在其他方面了,最近项目中需要开发小程序,正好采用Spring Boot实现一个后端服务,后面会把相关的代码案例分享出来,不至于大家做小程序后端服务的时候一头雾水. 在Spring Boot下默认提供了若干种可用的连接池(dbcp,dbcp2, tomcat, hikari),当然并不支持Druid,Druid来自于阿里系的一个开源连接池,它提供了非常优秀的监控功能,下面跟大家分享一下如何与Spring Bo

  • 详解Spring Boot下Druid连接池的使用配置分析

    引言: 在Spring Boot下默认提供了若干种可用的连接池,Druid来自于阿里系的一个开源连接池,在连接池之外,还提供了非常优秀的监控功能,这里讲解如何与Spring Boot实现集成. 1.  环境描述 spring Boot 1.4.0.RELEASE,  JDK 1.8 2.   Druid介绍 Druid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系. DruidDataSource 高效可管理的数据

  • SpringBoot Druid配置过程图解

    Druid是阿里开源的一个JDBC应用组件, 其包括三部分: DruidDriver: 代理Driver,能够提供基于Filter-Chain模式的插件体系. DruidDataSource: 高效可管理的数据库连接池. SQLParser: 实用的SQL语法分析 通过Druid连接池中间件, 我们可以实现: 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助. 替换传统的DBCP和C3P0连接池中

  • MySql 5.7.17压缩包免安装的配置过程图解

    MySQL数据库管理软件有两种版本,一种是企业版,一种是社区版,其中,前者是收费的,如果是个人使用的,社区版足矣.下载mysql-5.7.17-winx64.zip,并将之解压于自己选定的目录后,如图1,会在文件夹里看到配置文件my-default.ini,此时,需将其复制,并粘贴进bin文件夹里,并将其重新命名为my.ini,如图2.至此准备工作完成,下面将详说具体的配置过程. 工具/原料 (1)电脑:Lenovo B460e:  (2)操作系统:windows 7,64位:  (3)mysq

  • 一文秒懂springboot druid 配置

    Druid是阿里巴巴开发的一个连接池,他提供了一个高效.功能强大.可扩展性好的数据库连接池,区别于hikari.如果选择高性能可以选hikari,如果要功能多就选,druid. 首先pom引入依赖 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>

  • Windows10 Java环境变量配置过程图解

    准备过程: 在电脑桌面 右键点击 "此电脑"的"属性"选项 选择"高级系统设置"选项 点击下面的"环境变量"选项 配置过程: 点击"系统变量"下面的"新建"选项 在"变量名"处填上"Java_Home" "变量值"为JDK安装路径,笔者的路径是"D:\jdk1.8" 点击"确定"选项 选中

  • Springboot主程序类注解配置过程图解

    @SpringBootApplication 点进这个注解看 进去第一个注解@SpringBootConfiguration看,上面有Configuration注解 @Configuration 这是Spring的配置类注解, 说明这个类一个配置类,里面都是配置文件 进第二个注解@EnableAutoConfiguration, 顾名思义,这是允许自动配置生效的注解, 接下来进去看它. @EnableAutoConfiguration 进去后也有两个注解:第一个AutoConfiguration

  • Springboot集成activity过程图解

    1.第一步添加bpmn文件得插件,不然没法查看和编辑bpmn文件,添加插件的方法各自百度即可,很简单 2.安装好bpmn插件后开始新建bpmn文件,也就是画流程图 一般是在代码中进行指定流程审批人的,我这里只做入门案例 3.添加pom依赖 这里包含了在线设计流程图的相关依赖,在下一篇会写出来,项目中一般都是在前端在线设计:所以直接放上去也没事 <?xml version="1.0" encoding="UTF-8"?> <project xmlns

  • Spring整合junit的配置过程图解

    配置步骤: 1.导入Spring整合Junit的jar(坐标): <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.0.2.RELEASE</version> <scope>test</scope> </dependency> 2.使用Ju

  • PyCharm MySQL可视化Database配置过程图解

    在进行数据库相关的模块学习时,通常有人推荐使用Navicat,确实强大方便,可惜是收费的.这里推荐一个在社区版PyCharm里面直接可视化访问数据库的方法,开源免费. 在社区版的PyCharm中,可以通过下载Database Navigator的插件,实现可视化.下面是详细步骤: 1. 在菜单file中找到Settings,如下 2. 进入Plugins,搜索'Database Navigator',如下图,然后安装. 3. 装好后,菜单栏会多出一个菜单'DB Navigator',如下: 4.

  • Spring切入点表达式配置过程图解

    常用标签: 1. <aop:config> 作用:声明aop配置 2. <aop:pointcut> 作用:配置切入点表达式 属性:id:唯一标识切入点表达式名称 expression:定义切入点表达式 3. <aop:aspect> 作用:配置切面 属性:id:唯一标识切面的名称 ref:引用切面类(通知类)bean的id 4. <aop:before> 作用:配置前置通知(在执行目标对象方法之前执行) 属性:method:指定通知方法名称 pointcu

  • Springcloud GateWay网关配置过程图解

    一般为了不暴露自己的端口信息等,会选择架构一个网关在前面进行阻挡,起到保护的作用.附上一张工作示列图. 1.配置网关9527 gateway作为网关需要和其他的应用一样需要注册进eureka中进行管理,先创建应用gateway9527 pom文件,关键是gateway依赖 <dependencies> <dependency> <groupId>com.bai</groupId> <artifactId>cloud-api-common</

随机推荐