ドルイドはじめ 何ドルイドいますか? 最初は、データベース接続プールでドルイド。ドルイドは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> 复制代码