Druid基本配置及内置监控使用攻略
Druid是一个为数据库设计的连接池、SQL执行监控、分析工具。它使用Java的proxy技术来实现在JDBC层的透明处理和统计数据的展现。在使用前,需要进行一些基本配置。
基本配置
- 在项目的pom.xml中,引入Druid的依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
- 在Spring配置文件中,定义Druid的数据源:
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="initialSize" value="5" />
<property name="maxActive" value="50" />
<property name="minIdle" value="5" />
<property name="maxWait" value="60000" />
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="validationQuery" value="select 'x'" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
<property name="filters" value="stat,wall,log4j" />
<property name="proxyFilters">
<list>
<bean class="com.alibaba.druid.filter.stat.StatFilter" init-method="init" destroy-method="close">
<property name="logSlowSql" value="true" />
<property name="slowSqlMillis" value="2000" />
</bean>
</list>
</property>
</bean>
- 在web.xml中,配置DruidServlet和DruidFilter:
<servlet>
<servlet-name>DruidServlet</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
<init-param>
<param-name>resetEnable</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>loginUsername</param-name>
<param-value>admin</param-value>
</init-param>
<init-param>
<param-name>loginPassword</param-name>
<param-value>admin</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DruidServlet</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>DruidFilter</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>DruidFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
内置监控使用
Druid提供内置的监控功能,我们只需要配置好Druid,并访问以下地址即可:
http://localhost:8080/druid/index.html
在页面上,我们可以查看连接池的情况、SQL执行情况等信息。
示例说明1
在Druid的配置文件中,我们配置了maxActive为50,表示该连接池最大同时连接数为50。我们可以在内置监控页面上,查看当前连接池的情况。当连接池中连接数过多时,需要调整maxActive的值。
示例说明2
Druid的内置监控还可以查看SQL的执行情况。在Druid的配置文件中,我们配置了logSlowSql为true,表示打印执行时间大于2秒的SQL。我们可以在内置监控页面的Sql监控 tab 页上,查看SQL的执行情况。当SQL执行时间过长时,需要对SQL进行优化。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Druid基本配置及内置监控使用_动力节点Java学院整理 - Python技术站