尝试使用Druid作为数据源(三)

Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。它是阿里巴巴的一个开源项目。Druid支持所有JDBC兼容数据库,包括了Oracle、MySQL、PostgreSQL、SQL Server、H2等。可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能。

使用Druid成功连接到Mysq数据库

阿里巴巴开源了druid连接池源码,maven仓库可以获得jar包依赖。访问mvnrepository.com/artifact/com.alibaba/druid,点击进入后复制maven内容到pom.xml内即可

尝试使用Druid作为数据源(三)_第1张图片

添加Druid配置:

修改application.yml配置文件,添加druid的支持

尝试使用Druid作为数据源(三)_第2张图片

上面配置中的filters:stat表示已经可以使用监控过滤器,这时结合定义一个过滤器,就可以用来监控数据库的使用情况。

type: com.alibaba.druid.pool.DruidDataSource

#配置监控统计拦截的filters,去掉监控界面sql将无法统计,'wall'用于防火墙

filters: stat,wall,log4j

#最大活跃数

maxActive: 20

#初始化连接数

initialSize: 1

#最大连接等待超过时间

maxWait: 60000

#打开PSCache,并且指定每个连接PSCache的大小

poolPreparedStatements: true

maxPoolPreparedStatementPerConnectionSize: 20

#通过connectionProperties属性来打开mergeSql功能;慢SQL记录

connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

minIdle: 1

timeBetweenEvictionRunsMillis: 60000

minEvictableIdleTimeMillis: 300000

validationQuery: select 1 from dual

testWhileIdle: true

testOnBorrow: false

testOnReturn: false


运行项目:

尝试使用Druid作为数据源(三)_第3张图片

可见数据源已经切换成了druid。


开启Druid监控功能:

开启监控功能,可以在应用运行的过程中,通过监控提供的多维度数据来分析使用数据库的运行情况。

实现相关Servlet及filters:

尝试使用Druid作为数据源(三)_第4张图片

这样的方式不需要添加注解:@ServletComponentScan来扫描配置

项目运行成功后,我们要访问Druid的监控界面,访问地址:127.0.0.1:8080/druid/login.html

结果发现:并没有进入监控页面

排查:因为在配置中有服务项目名的配置,所以访问地址应该是http://127.0.0.1:8080/boot/druid/login.html

进入监控页面如图:

尝试使用Druid作为数据源(三)_第5张图片

我们已经成功的访问到了监控首页,可以看到大致包含了如下几个模块:数据源、SQL监控、SQL防火墙、Web应用、URI监控、Session监控、JSONAPI等。

数据源

可以看到项目中管理的所有数据源配置的详细情况,除了密码没有显示外其他都在。

SQL监控

可以查看所有的执行sql语句

SQL防火墙

druid提供了黑白名单的访问,可以清楚的看到sql防护情况。

Web应用

可以看到目前运行的web程序的详细信息。

URI监控

可以监控到所有的请求路径的请求次数、请求时间等其他参数。

Session监控

可以看到当前的session状况,创建时间、最后活跃时间、请求次数、请求时间等详细参数。

JSONAPI

通过api的形式访问Druid的监控接口,api接口返回Json形式数据。

你可能感兴趣的:(尝试使用Druid作为数据源(三))