竹笋

首页 » 问答 » 问答 » Boot2x基础教程使用国产数据
TUhjnbcbe - 2023/7/7 22:06:00

Druid是由阿里巴巴数据库事业部出品的开源项目。它除了是一个高性能数据库连接池之外,更是一个自带监控的数据库连接池。虽然HikariCP已经很优秀,但是对于国内用户来说,可能对于Druid更为熟悉。所以,对于如何在SpringBoot中使用Druid是后端开发人员必须要掌握的基本技能。

配置Druid数据源

下面我们就来开始对SpringBoot项目配置Druid数据源:

第一步:在pom.xml中引入druid官方提供的SpringBootStarter封装。

第二步:在application.properties中配置数据库连接信息。Druid的配置都spring.datasource.druid作为前缀,所以根据之前的配置,稍作修改即可:

第三步:配置Druid的连接池。与Hikari一样,要用好一个数据源,就要对其连接池做好相应的配置,比如下面这样:

关于Druid中各连接池配置的说明可查阅下面的表格:

到这一步,就已经完成了将SpringBoot的默认数据源HikariCP切换到Druid的所有操作。

配置Druid监控

既然用了Druid,那么对于Druid的监控功能怎么能不用一下呢?下面就来再进一步做一些配置,来启用Druid的监控。

第一步:在pom.xml中引入spring-boot-starter-actuator模块

第二步:在application.properties中添加Druid的监控配置。

上面的配置主要用于开启stat监控统计的界面以及监控内容的相关配置,具体释意如下:

spring.datasource.druid.stat-view-servlet.url-pattern:访问地址规则spring.datasource.druid.stat-view-servlet.reset-enable:是否允许清空统计数据spring.datasource.druid.stat-view-servlet.login-username:监控页面的登录账户spring.datasource.druid.stat-view-servlet.login-password:监控页面的登录密码第三步:针对之前实现的UserService内容,我们创建一个Controller来通过接口去调用数据访问操作:

第四步:完成上面所有配置之后,启动应用,访问Druid的监控页面ip:/druid/,可以看到如下登录页面:

输入上面spring.datasource.druid.stat-view-servlet.login-username和spring.datasource.druid.stat-view-servlet.login-password配置的登录账户与密码,就能看到如下监控页面:

进入到这边时候,就可以看到对于应用端而言的各种监控数据了。这里讲解几个最为常用的监控页面:

数据源:这里可以看到之前我们配置的数据库连接池信息以及当前使用情况的各种指标。

SQL监控:该数据源中执行的SQL语句极其统计数据。在这个页面上,我们可以很方便的看到当前这个SpringBoot都执行过哪些SQL,这些SQL的执行频率和执行效率也都可以清晰的看到。如果你这里没看到什么数据?别忘了我们之前创建了一个Controller,用这些接口可以触发UserService对数据库的操作。所以,这里我们可以通过调用接口的方式去触发一些操作,这样SQL监控页面就会产生一些数据:

图中监控项上,执行时间、读取行数、更新行数都通过区间分布的方式表示,将耗时分布成8个区间:

0-1耗时0到1毫秒的次数1-10耗时1到10毫秒的次数10-耗时10到毫秒的次数-1,耗时到0毫秒的次数1,-10,耗时1到10秒的次数10,-,耗时10到秒的次数,-1,,耗时到0秒的次数1,,-耗时0秒以上的次数记录耗时区间的发生次数,通过区分分布,可以很方便看出SQL运行的极好、普通和极差的分布。耗时区分分布提供了“执行+RS时分布”,是将执行时间+ResultSet持有时间合并监控,这个能方便诊断返回行数过多的查询。

SQL防火墙:该页面记录了与SQL监控不同维度的监控数据,更多用于对表访问维度、SQL防御维度的统计。

该功能数据记录的统计需要在spring.datasource.druid.filters中增加wall属性才会进行记录统计,比如这样:

spring.datasource.druid.filters=stat,wall

注意:这里的所有监控信息是对这个应用实例的数据源而言的,而并不是数据库全局层面的,可以视为应用层的监控,不可能作为中间件层的监控。

1
查看完整版本: Boot2x基础教程使用国产数据