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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

浅谈各种数据库连接池

發(fā)布時(shí)間:2024/1/17 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈各种数据库连接池 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

1.各種數(shù)據(jù)庫(kù)連接池

? ?開(kāi)源的免費(fèi)連接池:

? ? ? ? DBCP? C3P0? Proxool? Druid? Jakarta ?DDConnectionBroker? BoneCP

? ? ? ?XAPool? Primrose? SmartPool? MiniConnectionPoolManager?

? 商業(yè)的中間件連接池:

? ? ? ? weblogic的連接池?? websphere的連接池

?

2. 常用的連接池比較:

? ??DBCP可能是最常用的開(kāi)源連接池,常用的原因

? ? ? ?一是配置比較方便;

? ? ? ?二是很多開(kāi)源和tomcat的例子基本都是使用DBCP連接池。

? ? ? ?該連接池的基本功能都有,比如配置最大和最小的連接數(shù),連接等待時(shí)間等。

? ? 性能:在項(xiàng)目中測(cè)試,此連接池的持續(xù)運(yùn)行的穩(wěn)定性還是可以,但速度稍慢,

? ? ? ? ? ? 在高并發(fā)的壓力下穩(wěn)定性有所下降,不提供連接池監(jiān)控。

?

? ??C3P0也是常用的一款開(kāi)源的連接池,在開(kāi)發(fā)中用的也比較多,基本功能齊全。

? ? 性能:在項(xiàng)目中測(cè)試,發(fā)現(xiàn)此連接池的持續(xù)運(yùn)行的穩(wěn)定性相當(dāng)不錯(cuò),

? ? ? ? ? ? 在高并發(fā)的壓力下穩(wěn)定性也有一定的保證,不提供連接池監(jiān)控

?

? ??Proxool這個(gè)連接池可能較少有人使用,但其提供連接池監(jiān)控也有一定的知名度,基本功能齊全。

? ? 性能:在項(xiàng)目中測(cè)試,此連接池的持續(xù)運(yùn)行穩(wěn)定性有一定的問(wèn)題,但是因?yàn)樗邆浔O(jiān)控功能,

? ? ? ? ? ? 很多時(shí)候會(huì)用在開(kāi)發(fā)測(cè)試的階段,有助于確定是否有連接沒(méi)有被關(guān)掉等來(lái)排除代碼的一些性能問(wèn)題。

?

? ?上面的三種都是開(kāi)源的連接池的比較,如果有機(jī)會(huì)使用商業(yè)的中間件連接池的話,開(kāi)源的可以直接忽略掉,

? ?因?yàn)榛ㄥX(qián)的東西和免費(fèi)的東西完全不在一個(gè)量級(jí)。

? ?簡(jiǎn)單的說(shuō)下weblogic連接池,基本配置可以在網(wǎng)上查,這里說(shuō)下weblogic連接池Test Reserved Connections

? (對(duì)取得的連接進(jìn)行測(cè)試)和Test Released Connections(對(duì)釋放的連接進(jìn)行測(cè)試)這兩個(gè)選項(xiàng),有時(shí)候在系統(tǒng)

? 壓力大的時(shí)候會(huì)出現(xiàn)連接失效的異常,使用該連接池就會(huì)避免這個(gè)問(wèn)題,因?yàn)門(mén)est Reserved Connections和

? Test Released Connections在每次連接和釋放的時(shí)候都會(huì)幫我們先測(cè)試,一旦檢查?到連接是無(wú)效的他會(huì)廢棄掉

? 還給數(shù)據(jù)庫(kù),只給你有效的。

? ?性能:在具體項(xiàng)目應(yīng)用中,此連接池的持續(xù)運(yùn)行的穩(wěn)定性強(qiáng),在高并發(fā)的壓力下性能也相當(dāng)優(yōu)秀,

? ? ? ? ? ?在一些異常情況下連接池里的連接也能夠及時(shí)釋放。連接池監(jiān)控一目了然,及時(shí)到位。

3Druid數(shù)據(jù)庫(kù)連接池

? ?這里重點(diǎn)介紹下Druid連接池的配置和使用,Druid 是阿里的一款數(shù)據(jù)庫(kù)連接池,據(jù)阿里介紹,Druid?是目前開(kāi)源

? ?中最好的連接池,在功能,性能,可擴(kuò)展性方面遠(yuǎn)勝于其他的數(shù)據(jù)庫(kù)連接池,并且Druid?已經(jīng)部署了?超過(guò)7000個(gè)

? ?阿里應(yīng)用,經(jīng)過(guò)了長(zhǎng)時(shí)間生產(chǎn)環(huán)境大規(guī)模部署的嚴(yán)苛考驗(yàn) ,這話有沒(méi)有水分很難說(shuō),但確實(shí)有它的優(yōu)點(diǎn):

  • druid 內(nèi)置了一個(gè)功能強(qiáng)大的statfilter插件,能夠詳細(xì)統(tǒng)計(jì)sql的執(zhí)行性能,?這可以幫助我們對(duì)線上訪問(wèn)數(shù)據(jù)庫(kù)性能進(jìn)行分析。
  • 直接把數(shù)據(jù)庫(kù)密碼寫(xiě)在配置文件中是一個(gè)不好的行為,容易導(dǎo)致數(shù)據(jù)庫(kù)安全問(wèn)題,DruidDataSource支持PasswordCallBack可以解決這一問(wèn)題。
  • Druid提供了不同的LogFilter,可以根據(jù)情況選擇。
  • 如果對(duì)JDBC層有編程的需求,可以通過(guò)Druid提供的Filter機(jī)制,編寫(xiě)JDBC層的擴(kuò)展插件。
  • 下載 druid-0.2.20.jar http://download.csdn.net/detail/wind520/5670085

    ?在web.xml中配置上下面這段,就可以實(shí)時(shí)查看連接池使用情況

    <filter>
    <filter-name>DruidWebStatFilter</filter-name>
    <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
    <init-param>
    <param-name>exclusions</param-name>
    <param-value>/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>DruidWebStatFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    <servlet>
    <servlet-name>DruidStatView</servlet-name>
    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>DruidStatView</servlet-name>
    <url-pattern>/druid/*</url-pattern>
    </servlet-mapping>

    ?

    datasource.xml中配置

    <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
    init-method="init" destroy-method="close">
    <property name="url" value="${url}" />
    <property name="username" value="${username}" />
    <property name="password" value="${password}" />
    <!-- initialSize默認(rèn)0:初始化時(shí)建立物理連接的個(gè)數(shù) -->
    <property name="initialSize" value="${druid.initialSize}" />
    <!-- maxActive默認(rèn)8:最大連接池?cái)?shù)量 -->
    <property name="maxActive" value="${druid.maxActive}" />
    <!-- minIdle默認(rèn)8:最小連接池?cái)?shù)量 -->
    <property name="minIdle" value="${druid.minIdle}" />
    <property name="maxWait" value="${druid.maxWait}" />
    <property name="validationQuery" value="${validationQuery}" />
    <property name="testOnBorrow" value="${druid.testOnBorrow}" />
    <property name="testOnReturn" value="${druid.testOnReturn}" />
    <property name="testWhileIdle" value="${druid.testWhileIdle}" />
    <property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" />
    <!-- minEvictableIdleTimeMillis:配置一個(gè)連接在池中最小生存的時(shí)間,單位是毫秒 -->
    <property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" />
    <!-- 當(dāng)發(fā)生連接泄漏時(shí),使用RemoveAbandanded相關(guān)配置,用來(lái)關(guān)閉長(zhǎng)時(shí)間不使用的連接。 -->
    <property name="removeAbandoned" value="${druid.removeAbandoned}" />
    <!-- removeAbandonedTimeout:單位秒 -->
    <property name="removeAbandonedTimeout" value="${druid.removeAbandonedTimeout}" />
    <!-- 關(guān)閉abanded連接時(shí)輸出錯(cuò)誤日志 -->
    <property name="logAbandoned" value="${druid.logAbandoned}" />
    <property name="filters" value="${druid.filters}" />
    </bean>

    轉(zhuǎn)載于:https://www.cnblogs.com/fyboke/p/6245951.html

    總結(jié)

    以上是生活随笔為你收集整理的浅谈各种数据库连接池的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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