ドルイドの紹介

 

 

ドルイドはじめ
何ドルイドいますか?
最初は、データベース接続プールでドルイド。ドルイドはDBCP、C3P0、BoneCP、Proxool、を含む他のデータベース接続プール、より多くの、最高のデータベース接続プール、機能、パフォーマンス、スケーラビリティである JBossのデータソース。
ドルイドアリババは、より過酷なテスト環境の大規模な展開の製造後一年以上、600個の以上のアプリケーションを展開しています。
ドルイドは、3つの部分から構成JDBCコンポーネントです:
プラグインベースのシステムのフィルター・チェーンモード
プーリング、データベース接続のDruidDataSource効率的な管理
SQLパーサ
ドルイドは、Oracle、MySQLは、ダービー、Postgresqlの、を含むすべてのJDBC準拠データベース、サポート SQL Serverのを、 H2など、およびOracleとMySQL用のドルイドは、OracleのPSキャッシュメモリフットプリントの最適化は、pingの最適化MySQLの検出として、最適化された特別な操作を行います。
ドルイド、モニターSQLの実行時間、ResultSetのホールド時間が提供する機能のモニタリング、行の数が行数を更新し、返され、エラー、エラー・スタック情報の数は、あなたは明らかに、接続プールやSQLの仕事は、詳細な統計を行うことが可能であることを知ることができるSQLオンラインアクセスパフォーマンス分析データベースのために有用であるパフォーマンス、。
 

何をドルイドを行うことができますか?
DBCPとC3P0を交換してください。ドルイドは、効率的な、強力でスケーラブルなデータベース接続プールを提供します。
データベース・アクセスのパフォーマンスを監視することができ、ドルイドは、オンラインアクセスのパフォーマンス分析データベースに便利ですSQL実行のパフォーマンスに関する詳細な統計という強力なStatFilterプラグインを提供して構築されました。
データベースのパスワードの暗号化。良い行動ではないコンフィギュレーションファイル、データベースのパスワードに直接書き込み、簡単にセキュリティ上の問題につながります。DruidDriverとDruidDataSourceサポートPasswordCallbackの。
SQLの実行ログ、ドルイドは共通をサポートするために、異なるLogFilterを提供しています - ロギング、Log4jのとJdkLog、あなたは適切なLogFilterを選択する必要があり、訪問してアプリケーションを監視し、データベースを押すことができます。
あなたはドルイドが提供するJDBC層、フィルタ機構の需要プログラミングを持つようにしたい場合は、JDBCを拡張、それが書き込み拡張JDBC層に簡単です。
 
ドルイドは、配置された
導入のMavenプロジェクトに依存するJARパッケージのpom.xml:

 <依存> 
    <groupIdを> com.alibaba </ groupIdを> 
    <たartifactId>ドルイド</たartifactId> 
    <バージョン> 1.0を20である </バージョン> 
</ 依存関係
 

データ・ソース設定:

コードをコピー
 <! - -プロフィールを導入>   
    <豆ID = " mybatisPropertyConfigurer "  
        org.springframework.beans.factory.config.PropertyPlaceholderConfigurer 
        <プロパティ名= " オーダー"値= " 1 " />   
        <プロパティ名= " ignoreUnresolvablePlaceholders "値= " " /> 
        <プロパティ名= " 場所" > 
            <リスト> 
                <値>クラスパス:druid.properties </ value>の
            </リスト> 
        </ property>の   
    </豆>   
   
    <! -ドルイド连接池配置- > 
    <豆ID = データソース クラス = "com.alibaba.druid.pool.DruidDataSource "のinitメソッド= " INIT "破壊法= " 近い" >   
        <プロパティ名= " URL "値= " $ {URL} " />   
        <プロパティ名= " ユーザ名"値= " $ {ユーザー名} " />   
        <プロパティ名= " パスワード"値= " $ {パスワード} " />   
        <プロパティ名= "値=フィルター" />" $ {フィルタ} " />   
        <プロパティ名= " MAXACTIVE "値= " $ {MAXACTIVE} " />    
        <プロパティ名= " INITIALSIZE "値= " $ {INITIALSIZE} " />   
        <プロパティ名= " MAXWAIT "値= " $ {MAXWAIT} " />   
        <プロパティ名= " timeBetweenEvictionRunsMillis "値= "$ {} timeBetweenEvictionRunsMillis " 
        <プロパティ名= "minEvictableIdleTimeMillis "値= " $ {minEvictableIdleTimeMillis} " /> 
        <プロパティ名= " validationQuery "値= " $ {validationQuery} " />   
        <プロパティ名= " testWhileIdle "値= " $ {testWhileIdle} " />   
        <プロパティ名= " testOnBorrow "値= " $ {testOnBorrow} " />   
        <プロパティ名= "testOnReturn "値= " $ {testOnReturn} " />   
        <プロパティ名= " poolPreparedStatements "値= " $ {poolPreparedStatements} " />   
        <プロパティ名= " maxPoolPreparedStatementPerConnectionSize "値= " $ {maxPoolPreparedStatementPerConnectionSize} " /> 
    </ビーン> 
复制代码
 
ドルイド。コンテンツプロパティ: 

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12は、
13である
14 
15 
16
 17 
18である
19。
 20で
21で
22で
23で
24 
25 
26で
27 
28 
29 
URL = JDBC:MySQLの:// 3306 /時代:ローカルホスト 
=ユーザー名ルート
パスワード = 123456は、
物理的な接続番号#の初期化時間を確立します。ディスプレイは、最初のgetConnectionまたは、INITメソッドを呼び出したときに、初期化が発生
INITIALSIZE = 1つの
番号#は、最大接続プール定義
MAXACTIVEため = 20である
コネクション#ミリ秒を取得する最大待機時間。必要に応じてMAXWAITを設定した後、デフォルトの公正なロックでは有効になって、同時効率が真の不公平なロックに設定useUnfairLockプロパティを使用して、減少します。
MAXWAIT = 60000 
#PSCacheでPreparedStatementを、キャッシュするかどうか。PSCacheサポートデータベースは、oracleなど、巨大なパフォーマンスの向上を、カーソル。
#次のバージョンでMysql5.5ないPSCache機能、閉鎖することをお勧めします。5 0.5以上PSCacheを持っているが、あなたが回すことをお勧めします。
poolPreparedStatements = 
PSCacheを有効にするには#は、0よりも大きいが、poolPreparedStatementsが自動的にtrueに変更トリガされたとき、ゼロコンフィギュレーションよりも大きくなければなりません。
ドルイドで#、PSCacheは、Oracleの問題のためにあまりにも多くのメモリを存在しない、この値は、100のような、より大きな構成することができ
maxPoolPreparedStatementPerConnectionSize = 100 
#は、接続が有効なSQLであるかどうかを検出するために使用され、それはクエリが必要です。validationQueryがnullの場合、testOnBorrow、testOnReturn、testWhileIdleはその役割ではないでしょう。
validationQuery = SELECT X 
を行い、検出validationQuery接続有効なアプリケーション#接続は、この設定はパフォーマンスを低下させる可能性が作られています。
testOnBorrow = 
#実行validationQuery接続は、接続の復帰に有効であるかどうかを検出、この構成は、パフォーマンスが低下することがありました。
testOnReturn = falseを
真として設定#の提案は、パフォーマンスに影響を与える、と安全性を保証するものではありません。アイドル時間がtimeBetweenEvictionRunsMillisより大きい場合、アプリケーション接続は、validationQuery接続検出を行うが有効であるときを検出します。
testWhileIdle = trueに
使用統計フィルタを監視:#属性が文字列型である、別名拡張は方法、一般的に使用されるプラグを配置STAT; Logフィルタが使用:のlog4jと、SQLは注入防御フィルタ:ウォール
フィルタ = STAT、ウォール
#二つの意味があります時間間隔検出ネジ接続)を破壊; 2 )testWhileIdle判定基準を参照して詳細な説明testWhileIdle属性
timeBetweenEvictionRunsMillis = 3000 
#構成最小接続時間細胞生存ミリ
minEvictableIdleTimeMillis = 30万
 プラスのconfigureデータソース、あなたは内蔵のドルイドの監視を使用する場合は、<プロパティ名= フィルタ値= STAT  />
 上記既に持っています。
   またweb.xmlに追加する必要があります。
コピーコード
 < - - Web対応の監視統計がでweb.xml Webアプリケーションでこのステートメントサーブレットを追加する必要があります!> 
  の<servlet> 
      の<servlet-name>のDruidStatView </ servlet-名前> 
      <servlet- クラス > com.alibaba.druid.support.http.StatViewServlet </ servlet- クラス > 
      の<init-param>の   
        <! -空の統計を許可するかどうか、書かないでtrueの場合、デフォルト- > 
        <param-名前> resetEnable </ PARAM名>   
        の<param-value>はtrueに </ PARAM値>   
        </ initの-param>の   
        の<init-param>の   
        < -ユーザー名、ユーザー名とパスワードが書き込みは、時間を書いていないことができないではありません!直接ログを入力する必要があります- > 
        の<param-name>のloginUsername </ PARAM名>  
        </ INIT-param>の    
        <  PARAM-INIT> 
        <! -パスワード- >
        <PARAM名> LOGINPASSWORD </ PARAM名>   
        の<param-value>は123456 </ PARAM値>   
      </ INIT-param>の   
  </サーブレット> 
  <サーブレットマッピング> 
      <サーブレット名> DruidStatView </サーブレット名> 
      の<url-pattern> /ドルイド/ * </のurl-pattern> 
  </のservlet-mapping> 
复制代码

 

おすすめ

転載: www.cnblogs.com/Jeely/p/12040129.html