前言

从写System.out.println(“hello world!”)开始,到现在我一直认为,一个项目的系统上线,完成CURD(增删改查)的代码远远不够。为便于项目快速定位问题、排查思路、压力监控、加载缓慢等疑难杂症,你们如今又留了几手去捕捉呢?当然,成熟的软件公司会有运维部的支撑,极大程度上帮忙定位和解决了非代码上问题。对我现在的情况而言,拿到的产线环境,甚至还要自己去敲命令挂载磁盘…因此,不得不为上线后的问题排查做好几手的准备。今天就分下一下个人在项目中使用的Druid的监控配置。

1.1Druid 德鲁伊简介

1.Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。
2.Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。
3.Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。
4.Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。
5.Spring Boot 2.0 以上默认使用 Hikari 数据源,可以说 Hikari 与 Driud 都是当前 Java Web 上最优秀的数据源,我们来重点介绍 Spring Boot 如何集成 Druid 数据源,如何实现数据库监控。

1.2Druid 德鲁伊监控配置

操作十分简单,总体就两步:1.引入依赖 2.配置Configuration
依赖:

         <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version></dependency>

编写配置类:

package com.zym.conf;import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** 德鲁伊监控配置* @author zym* @date: 2022/11/1 下午10:43*/
@Configuration
public class DruidConfig {@Beanpublic ServletRegistrationBean<StatViewServlet> registrationBean() {ServletRegistrationBean<StatViewServlet> servletRegistrationBean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");// 添加IP白名单servletRegistrationBean.addInitParameter("allow", "127.0.0.1");// 添加IP黑名单,当白名单和黑名单重复时,黑名单优先级更高servletRegistrationBean.addInitParameter("deny", "192.168.25.123");// 添加控制台管理用户servletRegistrationBean.addInitParameter("loginUsername", "zym");servletRegistrationBean.addInitParameter("loginPassword", "123456");// 是否能够重置数据servletRegistrationBean.addInitParameter("resetEnable", "false");return servletRegistrationBean;}/*** 配置服务过滤器** @return 返回过滤器配置对象*/@Beanpublic FilterRegistrationBean<WebStatFilter> statFilter() {FilterRegistrationBean<WebStatFilter> filterRegistrationBean = new FilterRegistrationBean<>(new WebStatFilter());// 添加过滤规则filterRegistrationBean.addUrlPatterns("/*");// 忽略过滤格式filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*,");return filterRegistrationBean;}}

1.3相关配置参数说明

2.启动查看

访问项目地址/druid/webapp.html
查看如下:

德鲁伊的好出在于,配置完成后,可监控的范围很广泛,如当前系统请求次数最多的url,执行最多的sql,执行最缓慢的sql,并发量最高的时间点及功能…
具体的功能不再多说,感兴趣的同学可自己配置完查看,非常方便,监控内容非常详细,帮助我们线上项目准确的定位到service的方法及sql语句上。如有疑问,欢迎留言交流。

不应没有掌声,就不去做。
0 error(s) , 0 warning(s)

德鲁伊(Druid)后台监控配置详细操作。生产环境定位问题方法相关推荐

  1. Druid后台监控与过滤器

    Druid是阿里开元的数据源,相较于c3p0,dbcp等数据源具有强大的后台监控功能,刚好最近在学习springboot,涉及到Druid的知识,所以记录一下. springboot实现后台监控主要分 ...

  2. druid spring监控配置

    转载:http://www.cnblogs.com/lyh971134228/p/6808885.html druid spring监控配置 方法一: <bean id="seckil ...

  3. 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(中)

    系列文章目录 [大数据实时数据同步]超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(上) [大数据实时数据同步]超级详细的生产环境OGG(GoldenGa ...

  4. 使用pm2启动node文件_使用pm2部署node生产环境的方法步骤

    一.PM2是什么 是可以用于生产环境的Nodejs的进程管理工具,并且它内置一个负载均衡.它不仅可以保证服务不会中断一直在线,并且提供0秒reload功能,还有其他一系列进程管理.监控功能.并且使用起 ...

  5. yum安装ruby_CentOS 7下配置Ruby语言开发环境的方法教程

    本文跟大家分享的是在CentOS 7下配置Ruby语言开发环境的方法教程,分享出来供大家参考学习,下面来看看详细的介绍: 安装Ruby 2.2 CentOS7存储库中的Ruby版本为2.0,但如果需要 ...

  6. vscode怎么配置python运行环境f5_VSCode下配置python调试运行环境的方法_python

    这篇文章主要介绍了VSCode下配置python调试运行环境的方法,需要的朋友可以参考下 VSCode配置python调试环境 很久之前的一个东东,翻出来看看VSCode配置python调试环境 * ...

  7. JDBC的API与德鲁伊Druid连接池配置

    JDBC的API DriverManager  : 管理驱动,创建连接. Connection : 一个数据库连接,通过connection获取statement对象 Statement : 执行sq ...

  8. Spring Boot使用Druid和监控配置

    完美与Spring Boot集成. 1.编写Spring Boot Druid配置类 DruidDataSourceProperties.java package org.paascloud.ops. ...

  9. Git配置详细教程及基础使用方法,教你轻松学会git代码管理

    前言:现在版本控制使用Git居多,如果你还不会的话,点进来,教你如何配置Git. 目录 一.Git介绍 二.Git安装配置 2.1 安装过程详解 2.2 检查安装是否成功 三.提交和更新代码到Git仓 ...

最新文章

  1. mysql grant 主机名_MySQL GRANT:用户授权
  2. Java实现算法导论中快速傅里叶变换FFT迭代算法
  3. python结束线程池正在运行的线程_python之线程与线程池
  4. Java8新特性 Optional类
  5. mysql的存储过程放在哪里_mysql存储过程求解,错误在哪里?
  6. Python中的数据遍历操作
  7. bzoj1010 [HNOI2008]玩具装箱toy
  8. vc2013 开发 winusb 简单测试程序 基于 nu_bridge
  9. Python数据挖掘Pandas
  10. 【RX解码MIPI输出】XS9922B 4通道模拟复合视频解码芯片 功能对标TP2815
  11. win10不能正常安装.NET Framework 3.5,报0x800F081F错误。
  12. 前端配置prettier工具格式化代码
  13. 地图可视化绘制 | R-tanaka/metR包 绘制3D阴影效果地图
  14. 剑指XX游戏(七) - 不拼搏,枉少年
  15. Python中的Scapy初探之六--找出非法的DHCP Server
  16. 基于pyhton3.6-机器学习实战-支持向量机SVM代码解释
  17. 雪晴网上海沙龙+在线直播:如何成为数据科学家?
  18. 【研发管理】全面质量管理之石川馨
  19. Ubuntu 暂时不能解析域名
  20. 中字头 中建二局项目一期 aop

热门文章

  1. Phoenix重磅 | Phoenix核心功能原理及应用场景介绍
  2. vmware开启虚拟机时虚拟机黑屏的解决办法
  3. iPhone的呼叫转移来电等待如何设置?
  4. FPGA基础----TLP包格式以及组包方法(1)
  5. name norm is not defined
  6. es数据库查询API
  7. 中级认证宝典【全理论】
  8. C# JSON字符串序列化与反序列化(转)
  9. Golang项目 Go Build时报错
  10. 计算机cpu的字母,买电脑如何识别CPU后面数字和字母的含义?不被忽悠呢?