阿里Druid詳解

一、阿里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-tw/n/190782.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-30 09:06
下一篇 2024-11-30 09:06

相關推薦

  • 阿里雲郵箱主機名

    阿里雲郵箱主機名是指在阿里雲購買並綁定域名後,為郵件服務配置的一個記錄類型。在這篇文章中,我們將從多個方面對阿里雲郵箱主機名進行詳細闡述,幫助您更好地了解它的作用、使用方法和注意事…

    編程 2025-04-27
  • 阿里Python技術手冊

    本文將從多個方面對阿里Python技術手冊進行詳細闡述,包括規範、大數據、Web應用、安全和調試等方面。 一、規範 Python的編寫規範對於代碼的可讀性和可維護性有很大的影響。阿…

    編程 2025-04-27
  • 阿里雲Grass使用指南

    本文將為大家詳細介紹阿里雲Grass平台,包括核心概念、使用場景、基本操作、高級特性等內容,幫助大家全面掌握Grass的使用。 一、核心概念 Grass是阿里雲開發的一款全新PAA…

    編程 2025-04-27
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分散式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web伺服器。nginx是一個高性能的反向代理web伺服器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25

發表回復

登錄後才能評論