您的位置:首页 > 编程语言 > Java开发

springBoot使用druid数据源监控配置

2019-03-18 16:39 465 查看

前言之前项目我们采用的是jdbc数据源,今天我们采用druid数据源来监控我们项目的数据源,sql使用情况,web应用…等等

首选pom.xml中引入

<!-- alibaba的druid数据库连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</art
4000
ifactId>
<version>1.1.9</version>
</dependency>

修改 application-dev.yml文件下的spring-datasource

spring:
datasource:
url: jdbc:mysql://localhost:3306/web_test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
username: root
password: 123
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20

编写DruidDataSourceConfig类

package com.example.config;

import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.HashMap;
import java.util.Map;

/**
* @author zhaozeren
* @version 1.0
* @date 2019/3/18
*/
@Configuration
public class DruidDataSourceConfig {

@Bean
public ServletRegistrationBean druidServlet() {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
servletRegistrationBean.setServlet(new StatViewServlet());
servletRegistrationBean.addUrlMappings("/druid/*");
Map<String, String> initParameters = new HashMap<String, String>();
initParameters.put("loginUsername", "admin");// 用户名
initParameters.put("loginPassword", "admin");// 密码
initParameters.put("resetEnable", "false");// 禁用HTML页面上的“Reset All”功能
initParameters.put("allow", ""); // IP白名单 (没有配置或者为空,则允许所有访问)
//initParameters.put("deny", "192.168.20.38");// IP黑名单 (存在共同时,deny优先于allow)
servletRegistrationBean.setInitParameters(initParameters);
return servletRegistrationBean;
}

@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new WebStatFilter());
filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}

}

注意:如果使用了拦截器,或安全框架等,需放行/druid/**
本文使用了shiro所以在shiroConfig中放行

测试

访问http://localhost:8888/druid/login.html


应用场景(或者说监控页面关注的选项)
数据源

连接数设置,事务及连接数使用情况以及使用详细情况

SQL监控

执行时间,最慢,读取行数,最大并发数,以及时间分布。不一一说明

SQL防火墙

可以看出表的使用情况

Web应用

并发,请求数,来源于哪个类型操作系统,来源于哪些浏览器

URI监控

请求次数,请求时间,最大并发,区间分布

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: