
Druid 作为阿里开源的数据库连接池,核心优势体现在功能全面性、性能稳定性和生产级特性上,具体包括:
DROP TABLE、DELETE without WHERE 等); Druid 的监控功能通过内置的 StatViewServlet(监控页面)和 WebStatFilter(采集 Web 请求数据)实现,配置步骤如下(以 Spring Boot 为例):
在配置文件中添加监控相关参数,与连接池参数一起配置:
spring:
datasource:
druid:
# 连接池基础参数(省略,参考前文)
# ...
# 1. 配置监控页面(StatViewServlet)
stat-view-servlet:
enabled: true # 开启监控页面
url-pattern: /druid/* # 监控页面访问路径(默认即可)
login-username: admin # 登录监控页面的用户名(自定义)
login-password: 123456 # 登录密码(自定义)
reset-enable: false # 禁止重置监控数据(避免误操作)
allow: 127.0.0.1 # 允许访问监控页面的IP(默认全部允许)
deny: 192.168.1.100 # 禁止访问的IP(优先级高于allow)
# 2. 配置Web监控过滤器(WebStatFilter)
web-stat-filter:
enabled: true # 开启Web监控
url-pattern: /* # 监控所有请求
exclusions: "*.js,*.css,*.jpg,/druid/*" # 排除静态资源和监控页面自身
session-stat-enable: true # 开启会话监控
session-stat-max-count: 100 # 最多记录100个会话
# 3. 配置SQL监控(StatFilter)
filter:
stat:
enabled: true # 开启SQL执行监控
db-type: mysql # 数据库类型
log-slow-sql: true # 记录慢SQL
slow-sql-millis: 1000 # 慢SQL阈值(毫秒,超过此值记录)启动 Spring Boot 项目后,通过 http://localhost:8080/druid 访问监控页面(端口号与项目一致),输入配置的 login-username 和 login-password 登录。
监控页面包含多个功能模块:
若需更精细的监控(如只监控特定 URL 或排除某些 SQL),可通过 Java 代码自定义过滤器:
import com.alibaba.druid.filter.stat.StatFilter;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class DruidMonitorConfig {
// 自定义Web监控过滤器
@Bean
public FilterRegistrationBean<WebStatFilter> webStatFilter() {
FilterRegistrationBean<WebStatFilter> filterBean = new FilterRegistrationBean<>();
filterBean.setFilter(new WebStatFilter());
// 监控所有请求
filterBean.addUrlPatterns("/*");
// 排除不需要监控的路径(如静态资源)
filterBean.addInitParameter("exclusions", "*.js,*.css,/druid/*,/api/public/*");
return filterBean;
}
// 自定义SQL监控过滤器(如调整慢SQL阈值)
@Bean
public StatFilter statFilter() {
StatFilter statFilter = new StatFilter();
statFilter.setLogSlowSql(true);
statFilter.setSlowSqlMillis(500); // 慢SQL阈值设为500毫秒
statFilter.setMergeSql(true); // 合并相同SQL(如参数不同的同一语句)
return statFilter;
}
}Druid 的核心优势在于监控能力、扩展功能和生产级稳定性,尤其适合需要精细化管理数据库连接和排查 SQL 问题的场景。配置监控功能只需在 application.yml 中开启 stat-view-servlet 和 web-stat-filter,并通过登录监控页面即可直观查看各项指标,极大提升了系统的可观测性。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。