SpringBoot项目集成Druid

news2024/11/21 0:28:08

文章目录

  • 一、前言
  • 二、Druid相关内容
    • 1、Druid简介
      • 1.1数据库连接池
    • 2、项目集成Druid
      • 2.1、环境准备
      • 2.2、依赖准备
      • 2.3、编写配置文件
      • 2.4、测试访问
    • 3、功能介绍
      • 3.1、查看数据源
      • 3.2、SQL监控
      • 3.3、URI监控
  • 三、总结提升

一、前言

本文将介绍Druid的相关内容以及项目如何集成Druid,请多多指教。

二、Druid相关内容

1、Druid简介

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

1.1数据库连接池

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

2、项目集成Druid

2.1、环境准备

父项目是一个springboot工程

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.12.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
  • MySQL版本:5.7
  • springboot版本:2.3.12.RELEASE

2.2、依赖准备

引入Druid的依赖:

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

引入log4j

<!-- 引入log4j -->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

2.3、编写配置文件

spring:
  application:
    name: user-demo
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mengjie
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource
    #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

2.4、测试访问

访问:http://localhost:9010/druid
在这里插入图片描述
注意:博主这里的context-path为空,如果这里有值的话,那我们就需要在http://localhost:9010/druid端口的后面添加上context-path的值:http://localhost:9010/xxx/druid
在这里插入图片描述
账号和密码都在配置文件中可以进行配置,输入账号密码进行登录,登录成功;
在这里插入图片描述

3、功能介绍

3.1、查看数据源

这里展示了当前项目数据源的全部详细信息;
在这里插入图片描述

3.2、SQL监控

在这里插入图片描述
以下是Druid的SQL监控功能的一些详细信息:

  • SQL查询支持:Druid的SQL监控功能提供了对标准SQL查询的支持,包括SELECT、FROM、WHERE、GROUP BY、ORDER BY等语句。这意味着用户可以使用通用的SQL查询来访问和分析Druid中的数据。

  • SQL解析器:Druid集成了一个SQL解析器,负责将接收到的SQL查询解析成Druid的查询语言,这使得Druid能够理解并执行SQL查询。

  • 优化和执行:Druid的SQL监控功能不仅仅是一个简单的SQL解析器,它还包括了查询优化和执行的步骤,以确保查询在Druid集群上以高效的方式运行。这包括了查询计划的生成、数据片段的选择和并行执行等操作。

3.3、URI监控

druid也提供了自己的URI监控功能,有没有很熟悉,是不是好像在哪见到过,没错,之前介绍Sentinel的时候,sentinel就有URI监控的页面;
在这里插入图片描述

三、总结提升

Druid的SQL监控功能使得用户能够使用标准SQL语法来访问和分析存储在Druid集群中的实时数据,为数据分析提供了更大的灵活性和便利性。这个功能使得Druid成为了一个强大的实时数据存储和分析引擎,适用于各种大数据应用场景。

如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。

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

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

相关文章

每日一题(复制带随机指针的链表)

每日一题&#xff08;复制带随机指针的链表&#xff09; 138. 复制带随机指针的链表 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 由于每个链表还包含了一个random节点指向了链表中的随机节点&#xff0c;所以并不能直接照搬复制原链表。首先想到的暴力思路是复…

Self-Attention Transformer完全指南:像Transformer的创作者一样思考

本文从RNN到self-attention&#xff0c;再到Transformer来讲清楚整个算法。 近半年来有大量同学来找我问Transformer的一些细节问题&#xff0c;例如Transformer与传统seq2seq RNN的区别、self-attention层的深入理解、masked self-attention的运作机制&#xff1b;以及各种Tr…

2018ECCV Can 3D Pose be Learned from2D Projections Alone?

摘要 在计算机视觉中&#xff0c;从单个图像的三维姿态估计是一个具有挑战性的任务。我们提出了一种弱监督的方法来估计3D姿态点&#xff0c;仅给出2D姿态地标。我们的方法不需要2D和3D点之间的对应关系来建立明确的3D先验。我们利用一个对抗性的框架&#xff0c;强加在3D结构…

vue通过draggable实现拖拽功能

1. 官方文档 2. 安装 yarn add vuedraggable npm i -S vuedraggable <script src"//cdnjs.cloudflare.com/ajax/libs/Vue.Draggable/2.20.0/vuedraggable.umd.min.js"></script> 3. 其他组件&#xff1a; sortablejs.js拖拽 非官网文档 npm install …

Java 集合框架3

一、集合框架分类 二、 关于Map接口的常用类 1.HashMap HashMap类是Map接口的子类&#xff0c;是处理无序键值对集合的 HashMap特征1.允许有null键和null值2.数据保存是无序的3.重复的键被算作一个数据 i.HashMap构造方法 //HashMap() 构造一个初始存储空间为16&#xff0c;负…

zemax混合式非序列模拟

基础设置&#xff1a; 3D视图效果&#xff1a; 接下来用非序列模式设计一个多焦透镜 平行光束经过多焦透镜时&#xff0c;会汇聚在不同焦距处 非序列模式的编辑器如图&#xff1a; 注意不要点击左侧的非序列模式&#xff0c;那个时纯粹的非序列&#xff0c;会清除序列模式的数…

Revit SDK 介绍:AutoStamp 自动水印 AutoUpdate 自动更新 CancelSave

前言 这三个例子都是通过注册事件来完成相应的工作&#xff0c;内容比较简单。 内容 事件参考博客&#xff1a;Revit API&#xff1a;Events 事件总览 AutoStamp 自动水印 使用到的事件&#xff1a; application.ControlledApplication.ViewPrinting application.Controll…

时序预测 | MATLAB实现EEMD-SSA-LSTM、EEMD-LSTM、SSA-LSTM、LSTM时间序列预测对比

时序预测 | MATLAB实现EEMD-SSA-LSTM、EEMD-LSTM、SSA-LSTM、LSTM时间序列预测对比 目录 时序预测 | MATLAB实现EEMD-SSA-LSTM、EEMD-LSTM、SSA-LSTM、LSTM时间序列预测对比预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 时序预测 | MATLAB实现EEMD-SSA-LSTM、E…

第一章辩证唯物论,考点七思维导图

逻辑框架 考点七思维导图&#xff1a;

【【萌新的STM32学习-27--USART异步通信配置步骤】】

萌新的STM32学习-27–USART异步通信配置步骤 USART/UART 异步通信配置步骤 1.配置串口工作参数 HAL_UART_Init() 我们会在此处调用MSP中的回调函数 2.串口底层初始化 用户定义HAL_UART_MspInit() 配置GPIO NVIC CLOCK 等 3.开启串口异步接收中断 HAL_UART_Receive_IT() 4.…

基于简单的信息变换实现自然语言模型

题目:基于简单的信息变换实现自然语言模型 摘要:在自然语言处理中,自然语言模型是至关重要的。本论文提出了一种基于简单的信息变换实现自然语言模型的方法。该方法将输入信息进行一系列的信息变换,如分割、属性、等效替换、增加删除等变换,与原始信息进行比较,得知信息是…

解决window安装docker报错问题

第一次打开Docker Desktop后提示错误 试了网上版本都没用&#xff0c;后面发现是电脑没有下载相关虚拟机&#xff1a; 先点击链接下载wsl2&#xff0c;下载后命令行执行&#xff1a;dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /…

Jenkins发送邮件(简洁版)

需求背景 Jenkins构建结束需要通知客户下载项目WAR包&#xff0c;太麻烦且构建时间久的话可能忘记通知客户&#xff0c;想要构建结束自动邮件通知客户。 实现方法 # 安装mailx command -v mailx &> /dev/null || sudo yum -y install mailx# 发送邮件 recipient"ch…

深入解析即时通讯App开发中的关键技术

即时通讯App开发在现代社交和通信领域中扮演着重要的角色。随着移动设备的普及和网络的高速发展&#xff0c;人们对即时通讯工具的需求不断增加。本篇文章将深入探讨即时通讯App开发中的关键技术&#xff0c;帮助读者了解该领域的最新动态和技术趋势。 基础架构和通信协议 现…

Fair|Fur —— Fur Workflow

Hair Utils工具架 Hair Utils工具架上的Add Fur工具&#xff0c;对任何groom是一个好的起点&#xff0c;会对所选的skin自动创建Guide Groom和Hair Generate对象&#xff1b;如是带动画的skin&#xff0c;还会创建Guide Deform对象&#xff1b; Hair Utils工具架上的Create Gui…

WindowsServer2019安装.NET3.5

WindowsServer2019安装.NET3.5报0x800f0950 解决方法&#xff1a;复制WindowsServer2019镜像到目的操作系统 右键“此电脑”&#xff0c;以管理员权限打开服务器管理界面。 点击“添加角色和功能”。 然后一直下一步&#xff0c;找到要添加的.NET3.5功能即可。 ​​​​​​​设…

.NET Framework 3.5安装教程

一、概述 使用VS编程时&#xff0c;碰到需要安装低版本.NET Framework框架的第三方库文件。 环境&#xff1a; 操作系统 Window10 软件版本VS2015 二、安装 1、在Win10搜索框输入“启动或关闭 Windows功能”&#xff0c;然后点击“启动或关闭 Windows功能”项&#xff0c;如下图…

复旦MBA姜璐:勇往直前,成长永无止境

日月光华&#xff0c;旦复旦兮&#xff01;复旦MBA如同一个巨大的磁场&#xff0c;吸引了诸多来自五湖四海、各行各业的职场精英。从初入职场的青涩懵懂到如今的独当一面专业干练&#xff0c;他们逐渐成长为职场的中坚力量&#xff0c;在各自领域内发光发热。作为新时代的青年&…

汽车以太网协议栈

《大师说》栏目上线啦# 《大师说》栏目是怿星科技2023年推出的深度思考栏目&#xff0c;通过邀请内部专家&#xff0c;针对智能汽车行业发展、技术趋势等输出个性化的观点。每期一位大师&#xff0c;每位一个话题&#xff0c;本期由我们怿星的CTO虞胜伟&#xff0c;进行分享。…

盘点狼人杀中的强神与弱神 并评价操作体验

最初 强神是大家对猎人的称呼&#xff0c;但随着板子的增加 强神渐渐变成了强神神牌的统称。 狼人杀发展至今板子已经非常多了&#xff0c;而每个板子都会有不同的角色。 相同的是 大部分都会希望拿到一张强力神牌&#xff0c;这样能大大提高我们玩家的游戏体验&#xff0c;但其…