Druid是一个关系型数据库连接池,它是阿里巴巴的一个开源项目。Druid支持所有JDBC兼容数据库,包括了Oracle、MySQL、PostgreSQL、SQL Server、H2等。
Druid在监控、可扩展性、稳定性和性能方面具有明显的优势。通过Druid提供的监控功能,可以实时观察数据库连接池和SQL查询的工作情况。使用Druid连接池在一定程度上可以提高数据访问效率。

一、整合Druid

在上一节 https://www.cnblogs.com/myitnews/p/11875379.html 的基础上进行操作。

1. 在pom.xml添加依赖

  1. <!--druid-->
  2. <dependency>
  3. <groupId>com.alibaba</groupId>
  4. <artifactId>druid</artifactId>
  5. <version>1.1.20</version>
  6. </dependency>

2. application.yml

  1.  
  1. server:
  2. port: 8080
  3.  
  4. #数据源
  5. spring:
  6. datasource:
  7. url: jdbc:mysql://192.168.178.5:12345/cloudDB01?useUnicode=true&characterEncoding=UTF-8
  8. username: root
  9. password: 123456
  10. driver-class-name: com.mysql.jdbc.Driver
  11. #指定使用的数据库连接池
  12. type: com.alibaba.druid.pool.DruidDataSource
  13. druid:
  14. #初始化数量
  15. initial-size: 8
  16. min-idle: 1
  17. #最大活跃数
  18. max-active: 20
  19. #最大连接等到超时时间
  20. max-wait: 60000
  21. time-between-eviction-runsMillis: 60000
  22. min-evictable-idle-timeMillis: 300000
  23. validation-query: select 'x' FROM DUAL
  24. test-while-idle: true
  25. test-on-borrow: false
  26. test-on-return: false
  27. #打开PSCache,并且指定每个连接PSCache的大小
  28. pool-prepared-statements: true
  29. max-open-prepared-statements: 20
  30. max-pool-prepared-statement-per-connection-size: 20
  31. #配置监控统计拦截的filters,去掉后监控界面的sql将无法统计,wall用于防火墙
  32. filters: stat
  33. #通过connectionProperties属性来打开mergeSql功能;慢sql记录
  34. connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
  35. use-global-data-source-stat: true
  36. jpa:
  37. database: MySQL
  38. show-sql: true
  39. hibernate:
  40. naming:
  41. physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
  1.  

在项目启动的时候可以观察日志,会有“com.alibaba.druid.pool.DruidDataSource”的字样。

二、添加Druid监控

开启监控功能,可以在应用运行的过程中,通过监控提供的多维度数据来分析使用数据库的运行情况,从而可以调整程序设计,以便于优化数据库的访问性能。

  1. @Configuration
  2. public class DruidConfiguration {
  3.  
  4. @Bean
  5. public ServletRegistrationBean statViewServlet(){
  6. //创建Servlet注册实体
  7. ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
  8. //设置ip白名单
  9. servletRegistrationBean.addInitParameter("allow","127.0.0.1");
  10. //设置ip黑名单,如果allow与deny同时存在,deny优先于allow
  11. servletRegistrationBean.addInitParameter("deny","192.168.0.1");
  12. //设置控制台管理用户
  13. servletRegistrationBean.addInitParameter("loginUsername","druid");
  14. servletRegistrationBean.addInitParameter("loginPassword", "123456");
  15. //是否可以重置数据
  16. servletRegistrationBean.addInitParameter("resetEnable","false");
  17. return servletRegistrationBean;
  18. }
  19.  
  20. @Bean
  21. public FilterRegistrationBean statFilter(){
  22. //创建过滤器
  23. FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
  24. //设置过滤器过滤路径
  25. filterRegistrationBean.addUrlPatterns("/*");
  26. //忽略过滤的格式
  27. filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.png,*.css,*.ico,/druid/*");
  28. return filterRegistrationBean;
  29. }
  30. }

项目运行成功后,我们要访问Druid的监控界面,访问地址:127.0.0.1:8080/druid/login.html

输入我们刚才配置的用户名和密码就可以登录了。

成功的访问到了监控首页后,可以看到大致包含了如下几个模块:数据源、SQL监控、SQL防火墙、Web应用、URI监控、Session监控、JSONAPI等。

SQL监控
可以查看所有的执行sql语句

SQL防火墙
druid提供了黑白名单的访问,可以清楚的看到sql防护情况。

Web应用
可以看到目前运行的web程序的详细信息。

URI监控
可以监控到所有的请求路径的请求次数、请求时间等其他参数。

Session监控
可以看到当前的session状况,创建时间、最后活跃时间、请求次数、请求时间等详细参数。

JSONAPI
通过api的形式访问Druid的监控接口,api接口返回Json形式数据。

【使用篇二】SpringBoot使用Druid作为数据源(19)的更多相关文章

  1. 【串线篇】SpringBoot数据访问【数据源/mybatis/指定映射文件位置】

    一.配置数据源 1.1.jdbc版本 JDBC(.tomcat.jdbc.pool.DataSource作为数据源) <?xml version="1.0" encoding ...

  2. 记录一下自己搭建springboot+mybatis+druid 多数据源的过程

    前言  上次的一个项目(springboot+mybatis+vue),做到后面的时间发现需要用到多数据源.当时没有思路..后来直接用了jdbc来实现.这几天不是很忙,所以决定自己再搭建一次.不多说, ...

  3. MyBatis初级实战之四:druid多数据源

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  4. springboot配置Druid数据源

    springboot配置druid数据源 Author:SimpleWu springboot整合篇 前言 对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringDa ...

  5. SpringBoot进阶教程 | 第四篇:整合Mybatis实现多数据源

    这篇文章主要介绍,通过Spring Boot整合Mybatis后如何实现在一个工程中实现多数据源.同时可实现读写分离. 准备工作 环境: windows jdk 8 maven 3.0 IDEA 创建 ...

  6. SpringBoot系列之集成Druid配置数据源监控

    SpringBoot系列之集成Druid配置数据源监控 继上一篇博客SpringBoot系列之JDBC数据访问之后,本博客再介绍数据库连接池框架Druid的使用 实验环境准备: Maven Intel ...

  7. 【SSRS】入门篇(二) -- 建立数据源

    原文:[SSRS]入门篇(二) -- 建立数据源 通过 [SSRS]入门篇(一) -- 创建SSRS项目 这篇,我们建立了一个SSRS项目: 接下来,我们以 AdventureWorks2012 示例 ...

  8. 源码学习系列之SpringBoot自动配置(篇二)

    源码学习系列之SpringBoot自动配置(篇二)之HttpEncodingAutoConfiguration 源码分析 继上一篇博客源码学习系列之SpringBoot自动配置(篇一)之后,本博客继续 ...

  9. SpringBoot系列之集成logback实现日志打印(篇二)

    SpringBoot系列之集成logback实现日志打印(篇二) 基于上篇博客SpringBoot系列之集成logback实现日志打印(篇一)之后,再写一篇博客进行补充 logback是一款开源的日志 ...

随机推荐

  1. Chapter 3 :代码的坏味道

    "如果尿布臭了,就换掉它." --Beck奶奶,论保持小孩清洁的哲学 代码的坏味道这一章集中论述该何时重构.具体的重构方法在后面的章节. "没有任何度量规矩比得上见识广博 ...

  2. HTTP报文(首部字段)

    HTTP报文 请求报文/响应报文 结构: 报文首部 + (可选)报文主体(两者通过空行CR + LF来划分) 使用首部字段是为了给浏览器和服务器提供报文主体大小.所使用的语言.认证信息等内容 HTTP ...

  3. HDFS的架构和设计要点

    HDFS的架构和设计要点 转 大数据之路 发布于 2012/10/11 23:00 字数 4487 阅读 495 收藏 1 点赞 0 评论 0 撸了今年阿里.头条和美团的面试,我有一个重要发现.... ...

  4. 【JPA】注解@PostConstruct、@PreDestroy

    从Java EE5规范开始,Servlet增加了两个影响Servlet生命周期的注解@PostConstruct和@PreConstruct.这两个注解被用来修饰一个非静态的void()方法,而且这个 ...

  5. oc实现小型学生管理系统

                              首先,创建一个工程,然后加入两个cocoaclass,分别命名为Student   和 StudentSystem.   然后就可以开始写代码喽   ...

  6. SoC的软件开发流程,主要包含一些Linux下的操作命令

    该笔记主要记录SoC的软件开发流程,主要包含一些Linux下的操作命令 1. 编写design file .c .h 2. 编写makefile    可执行文件名,交叉编译环境,compile fl ...

  7. hdu 6308 Time Zone (模拟+字符串处理)

    Time Zone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  8. ajax结合sweetalert实现删除按钮动态效果

    目录 一.ajax结合sweetalert实现删除按钮动态效果 二.bulk_create批量插入数据 1. 一条一条插入 2. 批量插入 三.自定义分页器 一.ajax结合sweetalert实现删 ...

  9. ES6 promise 使用示例

    new Promise(function (resolve, reject) { $.ajax({ type : 'post', data : formData, dataType : 'json', ...

  10. 阿里云linux镜像发布web项目时候 tomcat与域名映射

    tomcat 与 域名映射 一  准备工作: 阿里云服务器Linux镜像 及 域名备案和将域名解析至服务器,通过<暂不说,网上一大把或者参考阿里官方实例手册> 在Linux镜像中安装tom ...