Druid Monitor
对于数据源,大家已经接触了不少了。比如c3p0、dhcp、proxool等,之后又发现使用tomcat-jdbc可以大大的提高性能。但是针对于我们的高并发的系统来说,总希望能找到一个性能更好、更稳定的产品来代替。在开源中国上偶然发现了很多公司都在使用Druid这个数据源,然后搜索了一些相关资料,有人提供了这几个数据源的性能测试报告,突然发现这个数据源以很好的性能已经被大家普遍使用了。于是就想深入的研究一下这个数据源了。其实很多项目都是JavaSE的,但是官网针对于JavaSE的项目又没有具体说明应该怎么使用其监控统计功能。于是自己就看了一下源码发现了有配置jmxUrl的地方,可以想想这个应该就是针对于远程监控项目的配置了。在这里我就整理一下自己的使用情况供以后的人员参考,如果有错误的地方,也请大牛指证,我也多学习学习。
首先说明一下大家都知道的几个地址吧,也省的访客来回搜索了。
正式版本下载地址:Druid是一个开源项目,源码托管在github上:Druid 0.1.18之后版本都发布到maven中央仓库中,所以你只需要在项目的pom.xml中加上dependency就可以了。例如:
com.alibaba druid ${druid-version}
也可以选择 Maven仓库查找公共的仓库地址:
接下来说明一下怎么查看DruidDataSource的监控数据。
对于web项目,使用起来很方便,只需要在web.xml中配置一下DruidStatView就行了。其它的Druid已经帮我们都实现了。1.Druid Monitor监控Java Web项目
先说明一下数据源的配置情况吧,例:
dbc:derby:=org.apache.derby.jdbc.EmbeddedDriver jdbc:mysql:=com.mysql.jdbc.Driver jdbc:log4jdbc:=net.sf.log4jdbc.DriverSpy jdbc:oracle:=oracle.jdbc.driver.OracleDriver jdbc:microsoft:=com.microsoft.jdbc.sqlserver.SQLServerDriver jdbc:jtds:=net.sourceforge.jtds.jdbc.Driver jdbc:postgresql:=org.postgresql.Driver jdbc:fake:=com.alibaba.druid.mock.MockDriver jdbc:hsqldb:=org.hsqldb.jdbcDriver jdbc:db2:=COM.ibm.db2.jdbc.app.DB2Driver jdbc:sqlite:=org.sqlite.JDBC jdbc:ingres:=com.ingres.jdbc.IngresDriver jdbc:h2:=org.h2.Driver jdbc:mckoi:=com.mckoi.JDBCDriver
DruidWebStatFilter com.alibaba.druid.support.http.WebStatFilter exclusions *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/* sessionStatMaxCount 1000 profileEnable true principalSessionName users.username DruidStatView com.alibaba.druid.support.http.StatViewServlet allow 128.242.127.1/24,127.0.0.1 deny 192.168.1.118 resetEnable false loginUsername druid loginPassword druid DruidStatView /druid/*
DruidStatView com.alibaba.druid.support.http.StatViewServlet jmxUrl service:jmx:rmi:///jndi/rmi://192.168.1.76:9004/jmxrmi DruidStatView /druid/*
配置好这些之后访问我们自己的web容器,发现果然可以查看统计信息了。还有人使用jconsole来访问,这个我没有尝试过,因为觉得那个操作对我来说太麻烦了。
3.Druid Monitor监控,使用druidStat.sh
这个命令脚本在git源码的druid\src\main\scripts目录下,
druidStat.bat脚本为: