关于DruidStatView监控信息

1、充当数据库连接池。
2、可以监控数据库访问性能
3、获得SQL执行日志

今天在项目的web.xml中看到有如下配置

	<servlet>
      <servlet-name>DruidStatView</servlet-name>
      <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
      <servlet-name>DruidStatView</servlet-name>
      <url-pattern>/druid/*</url-pattern>
    </servlet-mapping>

百度搜索得到一番解释
Druid内置提供了一个StatViewServlet用于展示Druid的统计信息。
这个StatViewServlet的用途包括:
1.提供监控信息展示的html页面
2.提供监控信息的JSON API
关于使用StatViewServlet,建议使用druid 0.2.6以上版本。
根据配置中的url-pattern来访问内置监控页面,如果是上面的配置,内置监控页面的首页是/druid/index.html
在这里插入图片描述
如果数据库连接池使用的是druid,druid是有监控页面的,通过druid的监控页面,我们可以检测每条sql语句的执行时间,执行次数等,还可以看到spring中加载的bean
在数据库配置文件中添加

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
	init-method="init" destroy-method="close">
	<property name="url">
		<value>${jdbc.url}</value>
	</property>
	<property name="username">
		<value>${jdbc.username}</value>
	</property>
	<property name="password">
		<value>${jdbc.password}</value>
	</property>
	<property name="initialSize">
		<value>${jdbc.initialSize}</value>
	</property>
	<property name="maxActive">
		<value>${jdbc.maxActive}</value>
	</property>
	<property name="proxyFilters">
		<list>
			<ref bean="stat-filter" />
		</list>
	</property>
	<property name="maxWait" value="${jdbc.maxWait}" />
	<property name="minIdle" value="${jdbc.minIdle}" />
	<property name="timeBetweenEvictionRunsMillis"
			  value="${jdbc.timeBetweenEvictionRunsMillis}" />
	<property name="minEvictableIdleTimeMillis"
			  value="${jdbc.minEvictableIdleTimeMillis}" />
	<property name="validationQuery" value="${jdbc.validationQuery}" />
	<property name="testWhileIdle" value="${jdbc.testWhileIdle}" />
	<property name="testOnBorrow" value="${jdbc.testOnBorrow}" />
	<property name="testOnReturn" value="${jdbc.testOnReturn}" />
	<property name="maxOpenPreparedStatements"
			  value="${jdbc.maxOpenPreparedStatements}" />
	<!-- 打开 removeAbandoned 功能 -->
	<property name="removeAbandoned" value="${jdbc.removeAbandoned}" />
	<!-- 1800 秒,也就是 30 分钟 -->
	<property name="removeAbandonedTimeout"
			  value="${jdbc.removeAbandonedTimeout}" />
	<!-- 关闭 abanded 连接时输出错误日志 -->
	<property name="logAbandoned" value="${jdbc.logAbandoned}" />
	<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
	<property name="poolPreparedStatements"
			  value="${jdbc.poolPreparedStatements}" />
	<property name="maxPoolPreparedStatementPerConnectionSize"
			  value="${jdbc.maxPoolPreparedStatementPerConnectionSize}" />
	<!--&lt;!&ndash; 超过时间限制是否回收 &ndash;&gt;-->
	<!--<property name="removeAbandoned" value="true" />-->
	<!--&lt;!&ndash; 超时时间;单位为秒。180秒=3分钟 &ndash;&gt;-->
	<!--<property name="removeAbandonedTimeout" value="180" />-->
	<!--&lt;!&ndash; 关闭abanded连接时输出错误日志 &ndash;&gt;-->
	<!--<property name="logAbandoned" value="true" />-->
</bean>

<bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
	<property name="slowSqlMillis" value="10000" />
	<property name="logSlowSql" value="true" />
	<property name="mergeSql" value="true" />
</bean>

<bean id="transactionManager"
	class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
	<property name="dataSource">
		<ref bean="dataSource" />
	</property>
</bean>

db.properties配置文件中

jdbc.url=数据库地址
jdbc.username=数据库用户名
jdbc.password=数据库密码
//定义初始连接数 
jdbc.initialSize=5
 //定义最大连接数 
jdbc.maxActive=200
//定义最长等待时间
jdbc.maxWait=60000
//最小空闲连接
jdbc.minIdle=10

//当timeBetweenEvictionRunsMillis 大于0时
//每过timeBetweenEvictionRunsMillis 时间,就会启动一个线程,
//校验连接池中闲置时间超过minEvictableIdleTimeMillis的连接对象
jdbc.timeBetweenEvictionRunsMillis=60000

jdbc.minEvictableIdleTimeMillis=300000
//给出一条简单的sql语句进行验证
jdbc.validationQuery=SELECT 'x'
//连接空闲时是否进行有效性验证(即是否还和数据库连通的)
jdbc.testWhileIdle=true
//取得连接时是否进行有效性验证(即是否还和数据库连通的
jdbc.testOnBorrow=false
//返回连接时是否进行有效性验证(即是否还和数据库连通的)
jdbc.testOnReturn=false
//要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。
//在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100
jdbc.maxOpenPreparedStatements=20
//打开removeAbandoned功能
jdbc.removeAbandoned=true
//1800秒,也就是30分钟
jdbc.removeAbandonedTimeout=1800
//关闭abanded连接时输出错误日志
jdbc.logAbandoned=true
//是否缓存preparedStatement,也就是PSCache。
//PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭
//打开PSCache,并且指定每个连接上PSCache的大小
jdbc.poolPreparedStatements=true
jdbc.maxPoolPreparedStatementPerConnectionSize=20
//最小程序池
jdbc.minPoolSize=2
//连接的最大空闲时间
jdbc.maxIdleTime=30000
//隔多少秒检查所有连接池中的空闲连接,默认为0表示不检查
jdbc.idleConnectionTestPeriod=100

在pom.xml文件中添加依赖

	    <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.17</version>
        </dependency>

这样就可以查看监控数据

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于JavaWeb项目中使用Druid连接池技术连接PostgreSQL数据库的配置,可以参考下面的步骤: 1. 在Maven项目中添加Druid和PostgreSQL的依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.6</version> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.2.5</version> </dependency> ``` 2. 在Web.xml中注册Druid的Servlet和Filter: ```xml <!-- 配置Druid的Servlet --> <servlet> <servlet-name>DruidStatView</servlet-name> <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DruidStatView</servlet-name> <url-pattern>/druid/*</url-pattern> </servlet-mapping> <!-- 配置Druid的Filter --> <filter> <filter-name>DruidWebStatFilter</filter-name> <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class> <init-param> <param-name>exclusions</param-name> <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value> </init-param> </filter> <filter-mapping> <filter-name>DruidWebStatFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 3. 在Spring配置文件中配置Druid数据源: ```xml <!-- 配置Druid数据源 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="driverClassName" value="org.postgresql.Driver"/> <property name="url" value="jdbc:postgresql://localhost:5432/db_name?currentSchema=schema_name"/> <property name="username" value="username"/> <property name="password" value="password"/> <property name="initialSize" value="5"/> <property name="minIdle" value="5"/> <property name="maxActive" value="20"/> <property name="testOnBorrow" value="true"/> <property name="testWhileIdle" value="true"/> <property name="validationQuery" value="SELECT 1"/> </bean> ``` 其中,`web.xml` 配置文件中的 `DruidStatView` 和 `DruidWebStatFilter` 是用于Druid监控管理功能,可以在浏览器中访问 `http://localhost:8080/druid` 来查看监控信息。`Spring` 配置文件中的 `dataSource` 则是用于配置Druid的数据源,其中 `url` 参数中的 `currentSchema` 指定连接当前会话使用的模式名称,`db_name` 和 `schema_name` 分别指定连接的数据库名称和模式名称,`username` 和 `password` 分别指定连接数据库的用户名和密码。其他的参数配置和前面的示例中是一致的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值