日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Druid 介绍及配置

發(fā)布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Druid 介绍及配置 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. Druid是什么?

Druid是Java語言中最好的數(shù)據(jù)庫連接池。Druid能夠提供強(qiáng)大的監(jiān)控和擴(kuò)展功能。

2. 在哪里下載druid

  • 正式版本下載:
    maven中央倉庫:?http://central.maven.org/maven2/com/alibaba/druid/?

3. 怎么獲取Druid的源碼

Druid是一個開源項(xiàng)目,源碼托管在github上,源代碼倉庫地址是?https://github.com/alibaba/druid。同時每次Druid發(fā)布正式版本和快照的時候,都會把源碼打包,你可以從上面的下載地址中找到相關(guān)版本的源碼

4. 怎么配置maven

Druid 0.1.18 之后版本都發(fā)布到maven中央倉庫中,所以你只需要在項(xiàng)目的pom.xml中加上dependency就可以了。例如:

<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid-version}</version></dependency>

也可以選擇 Maven倉庫查找公共的倉庫地址:http://www.mvnrepository.com/artifact/com.alibaba/druid

5. 怎么打開Druid的監(jiān)控統(tǒng)計功能

Druid的監(jiān)控統(tǒng)計功能是通過filter-chain擴(kuò)展實(shí)現(xiàn),如果你要打開監(jiān)控統(tǒng)計功能,配置StatFilter,具體看這里:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilter

6. 怎樣使用Druid的內(nèi)置監(jiān)控頁面

內(nèi)置監(jiān)控頁面是一個Servlet,具體配置看這里:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AE

7. 內(nèi)置監(jiān)控中的Web和Spring關(guān)聯(lián)監(jiān)控怎么配置?

  • Web關(guān)聯(lián)監(jiān)控配置?
    https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_%E9%85%8D%E7%BD%AEWebStatFilter
  • Spring關(guān)聯(lián)監(jiān)控配置?
    https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_Druid%E5%92%8CSpring%E5%85%B3%E8%81%94%E7%9B%91%E6%8E%A7%E9%85%8D%E7%BD%AE

8. 怎么配置防御SQL注入攻擊

Druid提供了WallFilter,它是基于SQL語義分析來實(shí)現(xiàn)防御SQL注入攻擊的。具體配置看這里:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE-wallfilter

9. Druid有沒有參考配置

不同的業(yè)務(wù)場景需求不同,你可以使用我們的參考配置,但建議你仔細(xì)閱讀相關(guān)文檔,了解清楚之后做定制配置。https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_DruidDataSource%E5%8F%82%E8%80%83%E9%85%8D%E7%BD%AE

10. 我想日志記錄JDBC執(zhí)行的SQL,如何配置

Druid提供了Log4jFilter、CommonsLogFilter和Slf4jFilter,具體配置看這里https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_LogFilter

11. 我的程序可能產(chǎn)生連接泄漏了,有什么辦法?

Druid提供了多種監(jiān)測連接泄漏的手段,具體看這里:https://github.com/alibaba/druid/wiki/%E8%BF%9E%E6%8E%A5%E6%B3%84%E6%BC%8F%E7%9B%91%E6%B5%8B

12. 在Druid中使用PSCache會有內(nèi)存占用過大問題么?

連接Oracle數(shù)據(jù)庫,打開PSCache,在其他的數(shù)據(jù)庫連接池都會存在內(nèi)存占用過多的問題,Druid是唯一解決這個問題的連接池。具體看這里:https://github.com/alibaba/druid/wiki/Oracle%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%8BPreparedStatementCache%E5%86%85%E5%AD%98%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88

13. 有沒有和其他數(shù)據(jù)庫連接池的對比?

  • 各種數(shù)據(jù)庫連接池對比https://github.com/alibaba/druid/wiki/%E5%90%84%E7%A7%8D%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%9E%E6%8E%A5%E6%B1%A0%E5%AF%B9%E6%AF%94

14. 從其他連接池遷移要注意什么?

  • 不同連接池的參數(shù)參照對比:?http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=6947005
  • DBCP遷移?https://github.com/alibaba/druid/wiki/DBCP%E8%BF%81%E7%A7%BB

15. Druid中有沒有類似Jboss DataSource中的ExceptionSorter

ExceptionSorter是JBoss DataSource中的優(yōu)秀特性,Druid也有一樣功能的ExceptionSorter,但不用手動配置,自動識別生效的。具體看這里:https://github.com/alibaba/druid/wiki/ExceptionSorter_cn

16. Druid中的maxIdle為什么是沒用的?

maxIdle是Druid為了方便DBCP用戶遷移而增加的,maxIdle是一個混亂的概念。連接池只應(yīng)該有maxPoolSize和minPoolSize,druid只保留了maxActive和minIdle,分別相當(dāng)于maxPoolSize和minPoolSize。

17. 我的應(yīng)用配置的是JNDI數(shù)據(jù)源,可以用DruidDataSource么?

DruidDataSource支持JNDI配置,具體看這里:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_JNDI_Tomcat?
具體實(shí)現(xiàn)的類是這個:com.alibaba.druid.pool.DruidDataSourceFactory,你可以閱讀代碼加深理解。

18. 我的應(yīng)用已使用DBCP,是代碼中寫死的,怎樣更換為Druid?

可以的,Druid提供了一個中完全平滑遷移DBCP的辦法。

  • 1) 從http://repo1.maven.org/maven2/com/alibaba/druid/druid-wrapper/?下載druid-wrapper-xxx.jar?
  • 2) 加入druid-xxx.jar?
  • 3) 從你的WEB-INF/lib/中刪除dbcp-xxx.jar?
  • 4) 按需要加上配置,比如JVM啟動參數(shù)加上-Ddruid.filters=stat,動態(tài)配置druid的filters?

這種用法,使得可以在一些非自己開發(fā)的應(yīng)用中使用Druid,例如在sonar中部署druid,sonar是一個使用jruby開發(fā)的web應(yīng)用,寫死了DBCP,只能夠通過這種方法來更換。

19. 我想試用快照版本,怎么獲取?

直接獲取快照版本的地址是:http://code.alibabatech.com/mvn/snapshots/com/alibaba/druid/?,使用快照版本建議加入我們QQ群 92748305,遇到問題直接反饋給我們。

20. 有一些SQL執(zhí)行很慢,我希望日志記錄下來,怎么設(shè)置?

在StatFilter配置中有慢SQL執(zhí)行日志記錄,看這里https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilter

21. 我希望加密我的數(shù)據(jù)庫密碼怎么辦?

運(yùn)維和DBA都不希望把密碼明文直接寫在配置文件中,Druid提供了數(shù)據(jù)庫秘密加密的功能。具體看這里:https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter

22. 如何參與Druid的開發(fā)

Druid是一個通過github開源的項(xiàng)目,github的特性,使得你很容易參與其中。這里有詳細(xì)說明https://github.com/alibaba/druid/wiki/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E

23. Druid的發(fā)布周期是怎樣?

Druid是一個活躍的項(xiàng)目,長期維護(hù)。每個月有一個發(fā)布窗口,除非遇到重大bug和非常緊急的需求,否則都是每個月最多發(fā)布一次。如果沒有足夠多的需求,發(fā)布窗口就不會被使用。

24. 如果DruidDataSource在init的時候失敗了,不再使用,是否需要close

是的,如果DruidDataSource不再使用,必須調(diào)用close來釋放資源,釋放的資源包括關(guān)閉Create和Destory線程。

25. DruidDataSource支持哪些數(shù)據(jù)庫?

理論上說,支持所有有jdbc驅(qū)動的數(shù)據(jù)庫。實(shí)際測試過的有

數(shù)據(jù)庫支持狀態(tài)
mysql支持,大規(guī)模使用
oracle支持,大規(guī)模使用
sqlserver支持
postgres支持
db2支持
h2支持
derby支持
sqlite支持
sybase支持

26. Oracle下jdbc executeBatch時,更新行數(shù)計算不正確

使用jdbc的executeBatch 方法,如果數(shù)據(jù)庫為oracle,則無論是否成功更新到數(shù)據(jù),返回值都是-2,而不是真正被sql更新到的記錄數(shù),這是Oracle JDBC Driver的問題,Druid不作特殊處理。

27. Druid如何自動根據(jù)URL自動識別DriverClass的

Druid是根據(jù)url前綴來識別DriverClass的,這樣使得配置更方便簡潔。

前綴DriverCLass描述信息
jdbc:odpscom.aliyun.odps.jdbc.OdpsDriver?
jdbc:derbyorg.apache.derby.jdbc.EmbeddedDriver?
jdbc:mysqlcom.mysql.jdbc.Driver?
jdbc:oracleoracle.jdbc.driver.OracleDriver?
jdbc:microsoftcom.microsoft.jdbc.sqlserver.SQLServerDriver?
jdbc:sybase:Tdscom.sybase.jdbc2.jdbc.SybDriver?
jdbc:jtdsnet.sourceforge.jtds.jdbc.Driver?
jdbc:postgresqlorg.postgresql.Driver?
jdbc:fakecom.alibaba.druid.mock.MockDriver?
jdbc:mockcom.alibaba.druid.mock.MockDriver?
jdbc:hsqldborg.hsqldb.jdbcDriver?
jdbc:db2COM.ibm.db2.jdbc.app.DB2DriverDB2的JDBC Driver十分混亂,這個匹配不一定對
jdbc:sqliteorg.sqlite.JDBC?
jdbc:ingrescom.ingres.jdbc.IngresDriver?
jdbc:h2org.h2.Driver?
jdbc:mckoicom.mckoi.JDBCDriver?
jdbc:cloudscapeCOM.cloudscape.core.JDBCDriver?
jdbc:informix-sqlicom.informix.jdbc.IfxDriver?
jdbc:timestencom.timesten.jdbc.TimesTenDriver?
jdbc:as400com.ibm.as400.access.AS400JDBCDriver?
jdbc:sapdbcom.sap.dbtech.jdbc.DriverSapDB?
jdbc:JSQLConnectcom.jnetdirect.jsql.JSQLDriver?
jdbc:JTurbocom.newatlanta.jturbo.driver.Driver?
jdbc:firebirdsqlorg.firebirdsql.jdbc.FBDriver?
jdbc:interbaseinterbase.interclient.Driver?
jdbc:pointbasecom.pointbase.jdbc.jdbcUniversalDriver?
jdbc:edbcca.edbc.jdbc.EdbcDriver?
jdbc:mimer:multi1com.mimer.jdbc.Driver?

28. 如何保存監(jiān)控記錄

https://github.com/alibaba/druid/wiki/%E6%80%8E%E4%B9%88%E4%BF%9D%E5%AD%98Druid%E7%9A%84%E7%9B%91%E6%8E%A7%E8%AE%B0%E5%BD%95

29. 我想Log輸出SQL執(zhí)行的信息怎么辦?

https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_LogFilter

30. 如何配置Druid內(nèi)置的log實(shí)現(xiàn)

https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AEdruid%E5%86%85%E7%BD%AE%E7%9A%84log%E5%AE%9E%E7%8E%B0

?

附:示例項(xiàng)目:

https://github.com/windwant/spring-dubbo-service.git https://github.com/windwant/spring-boot-service.git https://github.com/windwant/spring-cloud-service.git

總結(jié)

以上是生活随笔為你收集整理的Druid 介绍及配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。