一、阿里Druid用途
阿里Druid是一個JDBC的數據庫連接池和監控平台。它可以為你管理連接,監控連接使用情況,以及提供一些統計信息。
可以用Druid來代替DBCP、C3P0、BoneCP、Proxool等連接池。
除此之外,Druid還提供了一個強大的監控平台,可以實時監控數據庫連接池和SQL查詢情況,並對SQL進行防禦。
二、阿里Druid bug
在使用阿里Druid時,我們都可能會遇到一些bug,這些bug可能會影響到我們的應用程序的正常運行。
比如阿里Druid在1.0.3版本中的bug,會導致多線程訪問時出現”java.lang.NullPointerException”,同時也會造成數據錯誤等問題。
鑒於遇到bug時一般是需要修改代碼,或者是更新版本,所以在使用Druid的過程中,我們必須要注意版本的選擇,以免影響應用程序的正常運行。
三、阿里Druid官方文檔
在學習使用阿里Druid時,我們可以去官方網站尋找官方文檔,來了解Druid的詳細用法與參數說明。
Druid的官方文檔中詳細介紹了Druid配置參數、使用方法、監控與統計、防禦SQL注入、內置功能以及針對不同場景的最佳實踐等等。
同時也提供了Spring Boot和Mybatis等框架下應用Druid的簡單示例。
四、阿里Druid連接池
Druid作為一個JDBC的數據庫連接池,當然也有與連接池相關的一些參數和配置。
Druid連接池的各個參數,例如initialSize、maxActive、minIdle等,可以根據開發需求進行不同的配置。
同時,Druid連接池也可以通過配置參數來進行連接的監控和管理,以保證連接的正常使用。
@Bean public DataSource dataSource() throws SQLException { DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/test"); dataSource.setUsername("test"); dataSource.setPassword("test"); dataSource.setFilters("stat,wall"); dataSource.setMaxActive(20); dataSource.setInitialSize(1); dataSource.setMaxWait(60000); dataSource.setMinIdle(1); dataSource.setTimeBetweenEvictionRunsMillis(60000); dataSource.setMinEvictableIdleTimeMillis(300000); dataSource.setValidationQuery("SELECT 1"); dataSource.setTestWhileIdle(true); dataSource.setTestOnBorrow(false); dataSource.setTestOnReturn(false); dataSource.setPoolPreparedStatements(true); dataSource.setMaxOpenPreparedStatements(20); dataSource.setConnectionProperties("druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000"); return dataSource; }
五、阿里Druid 數據庫
Druid支持的數據庫類型,一直是我們非常關心的問題之一。
Druid目前支持的數據庫類型有:Oracle、DB2、MySQL、Sybase、Derby、PostgreSQL、Microsoft SQL Server、H2等。
這些數據庫類型對應的連接方式以及其他相關問題,都在Druid的官方文檔中有詳細介紹。
六、阿里Druid介紹
阿里Druid是阿里巴巴公司旗下的一個開源項目。
Druid目前是國內較為流行的數據庫連接池之一,由於其強大的SQL監控和防禦功能,在企業級應用中被廣泛使用。
同時,Druid還提供了其他一些實用的功能,例如SQL防火牆、批量更新等等。
七、阿里連接池 Druid
Druid除了是一個JDBC的數據庫連接池之外,還具有監控和防禦SQL注入等功能,因此也被稱為阿里連接池Druid。
連接池Druid是一種面向企業級應用的連接池,可以大大提高應用程序的性能和穩定性,並有效防禦SQL注入攻擊。
同時,在使用連接池Druid時,我們可以從中獲取更多的統計信息和診斷信息,從而對數據庫的使用情況有更準確的了解。
八、阿里為什麼棄用Druid
雖然Druid被廣泛應用於企業級應用中,但阿里巴巴公司也在不斷探索更加優秀的數據庫連接池。
據悉,阿里巴巴已經出了一個更加強大的連接池,名為Titan。
Titan不僅能夠監控數據庫連接池和SQL執行情況,還可以分析應用程序的查詢方式和代碼邏輯,對SQL語句進行高效的優化。
九、Druid被阿里放棄原因
阿里巴巴之所以放棄Druid,一方面是因為Druid在運行大規模分布式應用時的性能和擴展性不夠好;另一方面是因為Druid的開發者紅藺對此已經不再投入太多精力,而更關注新技術的開發。
因此,阿里巴巴選擇了放棄Druid,而轉向Titan等更加先進的技術。
十、Druid數據庫選取
Druid可以與多個數據庫進行配合使用,使得Druid的應用場景更加廣泛。
例如Druid可以和MySQL、Redis、Hbase等數據庫進行配合使用,以達到更好的效果。
假設我們需要配合MySQL使用Druid,我們可以這樣配置:
com.alibaba mysql-connector-java ${mysql.version} com.alibaba druid-spring-boot-starter ${druid.version} druid: datasource: url: jdbc:mysql://localhost:3306/test username: test password: test driver-class-name: com.mysql.jdbc.Driver
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/190782.html