Druid是什么?
Druid是一個(gè)JDBC組件,它包括四個(gè)部分:
http://download.csdn.net/download/feelnature/1580901
http://tomcat.apache.org/tomcat-8.5-doc/monitoring.html#Enabling_JMX_Remote
http://download.csdn.net/detail/qq_21163257/9695557
-
DruidDriver 代理Driver,能夠提供基于Filter-Chain模式的插件體系。
-
DruidDataSource 高效可管理的數(shù)據(jù)庫(kù)連接池。
-
SQLParser
-
擴(kuò)展組件
-
Binary: http://code.alibabatech.com/mvn/releases/com/alibaba/druid/0.1.2/druid-0.1.2.jar
-
Source: http://code.alibabatech.com/mvn/releases/com/alibaba/druid/0.1.2/druid-0.1.2-sources.jar
Druid可以做什么?
-
可以監(jiān)控?cái)?shù)據(jù)庫(kù)訪(fǎng)問(wèn)性能,Druid內(nèi)置提供了一個(gè)功能強(qiáng)大的StatFilter插件,能夠詳細(xì)統(tǒng)計(jì)SQL的執(zhí)行性能,這對(duì)于線(xiàn)上分析數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)性能有幫助。
-
替換DBCP和C3P0。Druid提供了一個(gè)高效、功能強(qiáng)大、可擴(kuò)展性好的數(shù)據(jù)庫(kù)連接池。
-
數(shù)據(jù)庫(kù)密碼加密。直接把數(shù)據(jù)庫(kù)密碼寫(xiě)在配置文件中,這是不好的行為,容易導(dǎo)致安全問(wèn)題。DruidDruiver和DruidDataSource都支持PasswordCallback。
-
SQL執(zhí)行日志,Druid提供了不同的LogFilter,能夠支持Common-Logging、Log4j和JdkLog,你可以按需要選擇相應(yīng)的LogFilter,監(jiān)控你應(yīng)用的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)情況。
-
擴(kuò)展JDBC,如果你要對(duì)JDBC層有編程的需求,可以通過(guò)Druid提供的Filter機(jī)制,很方便編寫(xiě)JDBC層的擴(kuò)展插件。
DruidDriver,是一個(gè)ProxyJdbcDriver,它提供了Filter-Chain模式的擴(kuò)展機(jī)制,使得在Jdbc擴(kuò)展編程特別方便。
Druid提供了一些內(nèi)置的擴(kuò)展機(jī)制,包括Stat、Log、Trace、HA等擴(kuò)展。
DruidDataSource是一個(gè)數(shù)據(jù)庫(kù)連接池的實(shí)現(xiàn),它的設(shè)計(jì)目標(biāo)是提供一個(gè)當(dāng)前最好的數(shù)據(jù)庫(kù)連接池,在性能、擴(kuò)展性等方面取得最合適的平衡,取代DBCP、C3P0等連接池。
-
高性能。測(cè)試數(shù)據(jù)表明,Druid比DBCP、C3P0、BoneCP的性能都好很多。具體請(qǐng)看測(cè)試數(shù)據(jù)
-
可管理性,DruidDataSource本身提供了很多監(jiān)控屬性,具體看這里。DruidDataSource支持StatFilter,具體配置看 這里
-
可擴(kuò)展性,提供基于Filter-Chain模式的擴(kuò)展機(jī)制。具體自定義擴(kuò)展的例子看這里。
-
替換DBCP,配置和DBCP兼容,可以方便替換DBCP。
-
適合大規(guī)模應(yīng)用。結(jié)合Alibaba使用數(shù)據(jù)庫(kù)連接池的經(jīng)驗(yàn),避免一些已知問(wèn)題,例如數(shù)據(jù)庫(kù)不可用恢復(fù)之后產(chǎn)生的連接風(fēng)暴問(wèn)題等。
設(shè)計(jì)
這是DruidDataSource的設(shè)計(jì)圖示:
http://code.alibabatech.com/svn/druid/trunk/doc/druid-pool.txt
如果發(fā)現(xiàn)有亂碼,請(qǐng)選擇utf-8的編碼方式查看。
Druid提供一個(gè)手工編寫(xiě)的高性能的方便擴(kuò)展的SQL Parser。將會(huì)支持MySQL、Oracle等流行關(guān)系數(shù)據(jù)庫(kù)的SQL Parser。
Parser組件包括如下幾個(gè)部分:
-
Lexer 詞法解析
-
Parser,Parser包括ExprParser,各種StatementParser。
-
AST, Abstract Syntax Tree。ParserParse出來(lái)的結(jié)果就是AST。
-
Visitor。對(duì)AST做各種處理,比如FormatOutput,遍歷等等。
簡(jiǎn)介
Druid提供了強(qiáng)大的監(jiān)控功能,能夠監(jiān)控連接池行為和SQL執(zhí)行情況,讓你能夠詳細(xì)了解應(yīng)用的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)行為。
監(jiān)控對(duì)象
-
Druid的統(tǒng)計(jì)信息定義代碼實(shí)現(xiàn)在com/alibaba/druid/stat下。所有的Stat都全局靜態(tài)變量的方式保存,這樣做使得外部獲取監(jiān)控信息更容易。
-
獲取Druid監(jiān)控信息的入口是com.alibaba.druid.stat.JdbcStatManager
-
Druid的監(jiān)控統(tǒng)計(jì)信息都是通過(guò)StatFilter來(lái)實(shí)現(xiàn)的,如果你需要數(shù)據(jù)源進(jìn)行監(jiān)控,那你需要啟用StatFilter
大盤(pán)預(yù)測(cè) 國(guó)富論