Druid 德鲁伊 | 安装、使用指南

news2024/11/16 19:39:00

Druid安装指南

  • 1. druid简介
    • 1.1数据库连接池
  • 2. 安装前的环境准备
  • 3. 安装步骤
    • 3.1 引入maven依赖
    • 3.1 编写配置文件
    • 3.3 启动Druid Monitor
  • 4. druid使用指南
    • 4.1 数据源
    • 4.2 SQL监控
    • 4.3 SQL防火墙
    • 4.4 web应用
    • 4.5 URI监控

1. druid简介

  druid是阿里开源的一个数据库连接池的解决方案。它本身还自带一个监控平台,可以查看时时产生的sql、uri等监控数据,可以排查慢sql、慢请求,方便对sql和项目代码进行调优。

1.1数据库连接池

  数据库连接池是一种用于管理和复用数据库连接的技术。在应用程序与数据库之间建立连接是一项开销较大的操作,而连接池的目标是通过预先建立一组数据库连接,然后在应用程序需要时分配和复用这些连接,以减少连接建立和断开的开销,提高数据库访问的效率和性能。
在这里插入图片描述


2. 安装前的环境准备

1、springboot项目

<!--父工程-->
 <parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.3.12.RELEASE</version>
 </parent>

2、mysql版本:5.7



3. 安装步骤

3.1 引入maven依赖

        <!--druid依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>

3.1 编写配置文件

  配置文件放在在这里插入图片描述

spring:
  #数据库连接配置
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://xxx.xxx.xxx:3306/xxxxxx?autoReconnect=true&useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
    username: xxxx
    password: xxxx
    #druid数据源配置
    druid:
      # 初始化连接池大小
      initialSize: 5
      # 最小连接数
      minIdle: 5
      # 最大连接数
      maxActive: 40
      # 获取连接时的最大等待时间
      maxWait: 60000
      #间隔多长时间进行一次检测;
      timeBetweenEvictionRunsMillis: 60000
      #配置一个最小的生存对象的空闲时间 
      minEvictableIdleTimeMillis: 300000
      validationQuery: SELECT 1
      testWhileIdle: true
      #申请连接时执行validationQuery检测连接是否有效,默认true,开启后会降低性能
      testOnBorrow: false
      #归还连接时执行validationQuery检测连接是否有效,默认false,开启后会降低性能
      testOnReturn: false
      poolPreparedStatements: true
      #配置监控统计拦截的filters。stat:监控统计、wall:防御sql注入、log4j:日志记录
      filters: stat,log4j
      maxPoolPreparedStatementPerConnectionSize: 20
      useGlobalDataSourceStat: true
      #执行时间超过3000毫秒的sql会被标记为慢sql
      connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=3000
      #配置过滤器,过滤掉静态文件
      web-stat-filter:
        enabled: true
        url-pattern: /*
        exclusions: /druid/*,*.js,*.css,*.gif,*.jpg,*.bmp,*.png,*.ico
      #配置可视化控制台页面
      stat-view-servlet:
        filter:
          stat:
            merge-sql: false  
        enabled: true
        #访问德鲁伊监控页面的地址
        url-pattern: /druid/*
        #IP白名单 没有配置或者为空 则允许所有访问
        allow: xxx.xxx.xxx
        #IP黑名单 若白名单也存在 则优先使用
        #deny: ip地址
        #禁用重置按钮
        reset-enable: true
        #登录所用的用户名与密码
        login-username: admin
        login-password: 123456

3.3 启动Druid Monitor

  运行项目以后德鲁伊就开始工作了。上面配置文件中配置了访问德鲁伊控制台的地址,打开控制台直接在项目路径后拼接/druid/index.html
在这里插入图片描述



4. druid使用指南

4.1 数据源

   在数据源这里可以看到连接池的情况,包括配置文件中配置的连接数等参数,以及没有配置的一些默认参数。
在这里插入图片描述

   数据源的下半部分可以看到一些时时产生的数据,这些参数都附带了解释,一些重要的数据有:

  • 等待线程数量 :当前等待获取连接的线程数
  • 事务启动数 :事务开始的个数
  • 事务时间分布 :事务运行时间分布,分布区间为[0-10 ms, 10-100 ms, 100-1 s, 1-10 s, 10-100 s, >100 s]
  • 池中连接数峰值 :连接池中数目的峰值
  • 活跃连接数 :当前连接池中活跃连接数
  • 执行数 :所有连接执行的任务数
  • 事务回滚数 :事务失败回滚的次数
  • 连接持有时间分布:连接持有时间分布,分布区间为[0-1 ms, 1-10 ms, 10-100 ms, 100ms-1s, 1-10 s, 10-100 s, 100-1000 s, >1000 s]

在这里插入图片描述

4.2 SQL监控

  我们在配置文件中配置了慢sql的执行时间为3秒钟,这里会将超过3秒钟的sql标红,方便我们一眼就看到。可以从下图看到有两个mansql,并把sql显示了出来,我们可以针对性的进行sql优化。

  执行分布时间一共有8个档位,在上述数据源里已经看到了这8个档位的含义。

  可以看到最大并发数是40,这是因为在配置文件中配置了最大连接数为40,可以根据实际情况调整参数。

在这里插入图片描述

  点击左侧蓝色的sql,可以查看更详细的视图。

在这里插入图片描述



4.3 SQL防火墙

  记录配置文件中配置的黑、白名单的拦截信息,我这里没有配也没有数据。

在这里插入图片描述


4.4 web应用

  可以看到整个项目的运行数据,主要记录的还是和数据库打交道的一些数据。
在这里插入图片描述


4.5 URI监控

  有不少中间件都能实现对于URI的监控(sentinel、skywalking、zipkin等),德鲁伊侧重的是和数据库连接产生的数据,可以结合多个监控的数据一起参考。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/887188.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Unity】按Esc进入操作菜单

本文章是基于如下视频的自我总结 https://www.youtube.com/watch?vJivuXdrIHK0 步骤如下 1、在Canvas 界面添加一个Panel Panel中添加一个按钮&#xff0c;调整按钮的大小为合适大小 调整字体的大小为合适大小 可以为字体添加Shadow组件&#xff0c;产生阴影效果 2、调整按…

【IMX6ULL驱动开发学习】05.字符设备驱动开发模板(包括读写函数、poll机制、异步通知、定时器、中断、自动创建设备节点和环形缓冲区)

一、 字符设备驱动简介 字符设备是Linux驱动中最基本的一类设备驱动&#xff0c;字符设备就是一个一个字节&#xff0c;按照字节流进行读写操作的设备&#xff0c;读写数据是分先后顺序的。比如常见的点灯、按键、IIC、SPI、LCD 等等都是字符设备&#xff0c;这些设备的驱动就叫…

Linux 常见问题解决思路

Linux 常见问题解决思路 CPU 高系统平均负载高&#xff08;load average&#xff09; CPU 高 1&#xff0c;步骤&#xff1a;查找进程-》查找线程-》分析threadDump日志-》找出问题代码 a、查看 cpu 高的 java 进程 topb、生成进程下所有线程的栈日志 jstack 1721 > 1712.…

Python入门【TCP建立连接的三次握手、 TCP断开连接的四次挥手、套接字编程实战、 TCP编程的实现、TCP双向持续通信】(二十七)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…

ant-design-vue在ios使用AUpload组件唤起了相机,HTML的 `capture` 属性

在使用ant design vue组件的上传组件AUpload的时候有一个问题&#xff0c;直接按照demo写&#xff0c;在ios上会唤起相机&#xff0c;但是实际上我们的需求是弹出选择相册/相机这个弹框。 解决办法是加一个 cupture"null"这个属性即可 <a-upload:capture"nu…

电压放大器的作用有哪些呢

电压放大器是一种基础的电子元件&#xff0c;它能够将输入电压信号转化为更高的输出电压信号&#xff0c;从而实现对信号的放大和处理。电压放大器广泛应用于各个领域&#xff0c;如通讯、控制、测量等。下面我们来详细了解一下电压放大器的作用。 一、信号放大 电压放大器最主…

selenium语法进阶+常用API

目录 浏览器操作 浏览器回退&#xff0c;前进 与刷新 浏览器窗口设置大小 浏览器设置宽高 浏览器窗口最大化 浏览器控制滚动条 信息打印 打印页面的标题和当前页面的URL 定位一组元素 鼠标和键盘事件 键盘 鼠标 下拉框操作 通过索引定位&#xff08;se…

Vue-8.集成(.editorconfig、.eslintrc.js、.prettierrc)

介绍 同时使用 .editorconfig、.prettierrc 和 .eslintrc.js 是很常见的做法&#xff0c;因为它们可以在不同层面上帮助确保代码的格式一致性和质量。这种组合可以在开发过程中提供全面的代码维护和质量保证。然而&#xff0c;这也可能增加一些复杂性&#xff0c;需要谨慎配置…

详细记录在迅为iMX6开发板中运行可执行文件

本文主要为了记录通过在虚拟机Ubuntu系统编译生成的可执行文件canitf如何运行在迅为的iMX6开发板上&#xff0c;中间涉及到的一些操作相对来说比较固定&#xff0c;因此可以整理成参考步骤以便之后使用时来依照执行。 一、生成可执行文件 首先在Ubuntu系统对应目录终端运行如…

7-11 到底是不是太胖了

分数 10 全屏浏览题目 切换布局 作者 陈越 单位 浙江大学 据说一个人的标准体重应该是其身高&#xff08;单位&#xff1a;厘米&#xff09;减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材&#xff08;即 | 真实体重 − 标准体重 | < 标…

【深入了解PyTorch】PyTorch模型解释性和可解释性:探索决策过程与预测结果的奥秘

【深入了解PyTorch】PyTorch模型解释性和可解释性:探索决策过程与预测结果的奥秘 PyTorch模型解释性和可解释性:探索决策过程与预测结果的奥秘1. 引言2. 梯度可视化3. 特征重要性分析4. 结论PyTorch模型解释性和可解释性:探索决策过程与预测结果的奥秘 在机器学习和深度学习…

哈夫曼树(赫夫曼树、最优树)详解

目录 哈夫曼树&#xff08;赫夫曼树、最优树&#xff09;详解 哈夫曼树相关的几个名词 什么是哈夫曼树 构建哈夫曼树的过程 哈弗曼树中结点结构 构建哈弗曼树的算法实现 哈夫曼树&#xff08;赫夫曼树、最优树&#xff09;详解 哈夫曼树相关的几个名词 路径&#xff1a;…

“西游记“中的项目管理:如何驾驭你的“取经之路”

​1.​引言 自古以来&#xff0c;文学作品不仅仅是为了娱乐&#xff0c;它们也为我们提供了生活的智慧和经验。中国的古典文学巨著《西游记》便是其中的佼佼者&#xff0c;其中的故事和角色为我们提供了丰富的人生哲理和管理智慧。但你可能会问&#xff0c;一个古老的神话故事…

Windows11 Docker Desktop 启动 -wsl kernel version too low

系统环境&#xff1a;windows11 1&#xff1a;docker下载 Docker: Accelerated Container Application Development 下载后双击安装即可 安装后启动Docker提示&#xff1a;Docker Desktop -wsl kernel version too low 处理起来也是非常方便 1:管理员身份启动&#xff1a;…

Python 处理 Excel 表格的 14 个常用操作

目录 1. 安装依赖库 2. 导入库 3. 读取Excel文件 4. 写入Excel文件 5. 创建工作表 6. 访问工作表 7. 读取单元格数据 8. 写入单元格数据 9. 获取行数和列数 10. 过滤数据 11. 排序数据 12. 添加新行 13. 删除行或列 14. 计算汇总统计 总结 无论是数据分析师、财…

CoordAtt注意力网络结构

源码&#xff1a; import torch import torch.nn as nn import math import torch.nn.functional as Fclass h_sigmoid(nn.Module):def __init__(self, inplaceTrue):super(h_sigmoid, self).__init__()self.relu nn.ReLU6(inplaceinplace)def forward(self, x):return self.…

杂记 | 记录一次使用docker安装gitlab-runner的过程(馋哭了)

文章目录 01 前情提要02 编写docker-compose.yml03 启动与注册04 流水线部署 01 前情提要 前不久使用docker部署好了自己的gitlab服务&#xff0c;简直香惨了。 上集传送门&#xff1a;记录一次使用Docker安装gitlab-ce的过程&#xff08;含配置交换内存&#xff09; 现在&am…

postgresql的在windows下的安装

postgresql的在windows下的安装 下载安装步骤超级用户设置密码本地化设置安装信息安装完成 查看postgresql服务pgAdmin的使用打开命令 行工具查询数据库版本 创建数据库 下载 官网地址 https://www.postgresql.org/ 下载页面 https://www.postgresql.org/download/ windows下…

Spring Boot 中的 AOP,到底是 JDK 动态代理还是 Cglib 动态代理

大家都知道&#xff0c;AOP 底层是动态代理&#xff0c;而 Java 中的动态代理有两种实现方式&#xff1a; 基于 JDK 的动态代理 基于 Cglib 的动态代理 这两者最大的区别在于基于 JDK 的动态代理需要被代理的对象有接口&#xff0c;而基于 Cglib 的动态代理并不需要被代理对…

TiDB数据库从入门到精通系列之六:使用 TiCDC 将 TiDB 的数据同步到 Apache Kafka

TiDB数据库从入门到精通系列之六&#xff1a;使用 TiCDC 将 TiDB 的数据同步到 Apache Kafka 一、技术流程二、搭建环境三、创建Kafka changefeed四、写入数据以产生变更日志五、配置 Flink 消费 Kafka 数据 一、技术流程 快速搭建 TiCDC 集群、Kafka 集群和 Flink 集群创建 c…