Druid是什么和用StatViewServlet用于展示Druid的统计信息

2024-11-24 23:52:52
推荐回答(1个)
回答1:

 Druid是一个JDBC组件,它包括三部分:
  
  DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。
  DruidDataSource 高效可管理的数据库连接池。
  SQLParser
  
  Druid可以做什么?
  
  1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
  
  2) 替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
  
  3) 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
  
  4) SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
  
  扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter-Chain机制,很方便编写JDBC层的扩展插件。
  
  如下是一个基于Druid内置扩展StatFilter的监控实现:
  Druid内置提供了一个StatViewServlet用于展示Druid的统计信息。
  
  这个StatViewServlet的用途包括:
  
  提供监控信息展示的html页面
  提供监控信息的JSON API
  
  注意:使用StatViewServlet,建议使用druid 0.2.6以上版本。
  
  1. 配置web.xml
  
  StatViewServlet是一个标准的javax.servlet.http.HttpServlet,需要配置在你web应用中的WEB-INF/web.xml中。
   DruidStatView com.alibaba.druid.support.http.StatViewServlet DruidStatView /druid/*

  根据配置中的url-pattern来访问内置监控页面,如果是上面的配置,内置监控页面的首页是/druid/index.html

  2. 配置allow和deny

  StatViewSerlvet展示出来的监控信息比较敏感,是系统运行的内部情况,如果你需要做访问控制,可以配置allow和deny这两个参数。比如:
   DruidStatView com.alibaba.druid.support.http.StatViewServlet allow 128.242.127.1/24,128.242.128.1 deny 128.242.127.4

  判断规则

  deny优先于allow,如果在deny列表中,就算在allow列表中,也会被拒绝。
  如果allow没有配置或者为空,则允许所有访问

  ip配置规则

  配置的格式
   或者 /

  其中
  128.242.127.1/24

  24表示,前面24位是子网掩码,比对的时候,前面24位相同就匹配。

  不支持IPV6

  由于匹配规则不支持IPV6,配置了allow或者deny之后,会导致IPV6无法访问。

  3. 配置resetEnable

  在StatViewSerlvet输出的html页面中,有一个功能是Reset All,执行这个操作之后,会导致所有计数器清零,重新计数。你可以通过配置参数关闭它。
   DruidStatView com.alibaba.druid.support.http.StatViewServlet resetEnable false