druid

druid是和tomcat jdbc一样优秀的连接池,出自阿里巴巴。 关于druid连接池参数,参考

https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%BD%AE%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8

除了连接池,druid还有一个很实用的监控功能,这就是下面要讲的

pom.xml

添加了以下依赖后,会自动用druid连接池替代默认的tomcat jdbc连接池

1. <dependency>
2. <groupId>com.alibaba</groupId>
3. <artifactId>druid-spring-boot-starter</artifactId>
4. <version>1.1.0</version>
5. </dependency>

参数配置

在properties文件中配置以spring.datasource.druid为前缀的参数,会注入到druid连接池中。默认有的监控没有开启,现在全部配置开启

1. #默认为stat,即开启sql监控。这里加了个wall,表示同时开启sql防火墙  
2. spring.datasource.druid.filters=stat,wall  
3. #spring监控,hello.controller是我的控制层包名,也可以是服务层,用逗号分隔多个监控内容  
4. spring.datasource.druid.aop-patterns=hello.controller.*  
5. #监控页面登录用户名  
6. spring.datasource.druid.StatViewServlet.loginUsername=admin  
7. #监控页面登录密码  
8. spring.datasource.druid.StatViewServlet.loginPassword=123

sql监控

启动项目,访问http://localhost/druid/index.html,用户名和密码就是上面配置的内容

druid禁止监控 druid spring监控_druid禁止监控


登录后,必须先访问一个后台应用的URL,执行了后台程序后,才能看到监控数据。

点击SQL监控菜单:可以查看后台程序执行的sql语句所耗的时间,时间单位是毫秒。 

druid禁止监控 druid spring监控_druid禁止监控_02

时间分布显示[0,1,0,0,0,0,0,0]是什么意思?

第一个0代表这个SQL有0次执行耗时0-1毫秒

第二个1代表这个SQL有1次执行耗时1-10毫秒,也就是我们这里唯一的一次

第三个0代表这个SQL有0次执行耗时10-100毫秒

以此类推,越右边的数字代表执行SQL时间越长的次数,如果靠右边的数字很大,就必须关注这条SQL了

其他 监控

spring监控:和SQL监控类似,我配置的是监控控制层,所以显示的是控制层执行的时间分布

数据源:显示当前连接池的参数配置,页面右上角有中英文切换,可以对照着查看说明

SQL防火墙:防御SQl攻击,拦截SQL请求

其他监控: 在这里就不多介绍了,都是中文的自己看。监控也会占用系统资源,没什么大用的监控可以关掉

更多详细内容参考druid中文文档   https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98