• 德鲁伊(Druid)后台监控配置详细操作,别再怕找不到疑难杂症


    前言

    从写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>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    编写配置类:

    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 {
        @Bean
        public 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 返回过滤器配置对象
         */
        @Bean
        public 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
    • 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
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    1.3相关配置参数说明

    在这里插入图片描述

    2.启动查看

    访问项目地址/druid/webapp.html
    查看如下:
    在这里插入图片描述
    在这里插入图片描述

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

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

  • 相关阅读:
    Apache 的配置与应用
    多功能频率计周期/脉宽/占空比/频率测量verilog,视频/代码
    Java好的编码习惯
    10.力扣c++刷题-->罗马数字转整数
    游戏企业通关秘籍:华为云游戏全场景能力,开发+部署+运营“关关难过关关过”...
    JWT的应用
    平衡二叉树AVL的插入删除
    oracle实验七(安全管理)
    期末前端web大作业:用DIV+CSS技术设计的动漫网站——火影忍者6页 带报告
    【原创】不同RTOS中POSIX接口的实现差异
  • 原文地址:https://blog.csdn.net/goGoing_/article/details/127643226