SpringBoot構成Druidデータソース

4542 ワード

SpringBoot druidデータソースの構成
Author:SimpleWu
Springboot統合編
前言
データ・アクセス・レイヤでは、SqlでもNoSqlでもSpringBootのデフォルトではSpringDataを統合した統合管理が行われ、大量の自動構成が追加され、多くの設定がブロックされています.様々なXxxTemplateとXxxRepositoryを導入し、わがチームのデータアクセス層の操作を簡素化した.
SpringBoot2.0デフォルトはcomです.zaxxer.hikari.データソースとしてHikariDataSourceを使用します.
2.0以下のデフォルトはorgである.apache.tomcat.jdbc.pool.データソースとしてDataSourceを使用します.
Hikariの公式サイト:http://brettwooldridge.github.io/HikariCP/
HikariはJAVA分野の中で最も速いデータ接続プールと呼ばれています.接続してみてください.最初の行は彼自身がどんなにすごいか、秒殺しているかということですが、どんなに速くてもアリババがapacheのDruidに捧げていないほうがいいと思います.アリババのサービスが行き届いているので、監視センターがあり、迅速にsqlなどを位置づけることができます.
Druid公式サイト:http://druid.io/
なぜHikariCPが最も性能の良いJavaデータベース接続プールと呼ばれているのか、このブログを参照してください. :デフォルトではcomが使用する.zaxxer.hikari.HikariDataSourceでデータソースを取得すると、例外が放出されます.タイムゾーンが間違っていると言ったら、mysqlのタイムゾーンを変更する必要があります.
SHOW VARIABLES LIKE '%time_zone%'
SET GLOBAL time_zone="+8:00"

Druidデータソースの使用
Apache Druid(Incubating)-カラム向けの分散型データストレージは、インタラクティブなアプリケーションの動力提供に最適です.
HikariDataSourceの性能は非常に高いが、アリのdruidデータソースにはデータソース管理ソフトウェアがセットされており、開発でより多く使用されている.
以前はDruidの依存関係を直接導入していました

    com.alibaba
    druid
    1.1.12

しかし、このような爆発的なSpringBootに直面するには、Druidのイニシエータではなく、私たち自身の統合が必要です.apacheでは4ヶ月前にSpringBootを完璧にサポートする案が出ていますので、上記の依存ではなく使用しています.
ソースのダウンロード:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

   com.alibaba
   druid-spring-boot-starter
   1.1.10

YMLファイルを配置して、具体的なパラメータの配置は公式サイトに行って見ることができます:
spring:
  datasource:
#          
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/duid
    type: com.alibaba.druid.pool.DruidDataSource
#          
    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
#            filters,       sql    ,'wall'       
    filters: stat,wall
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true  
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

druid接続プールの他のプロパティを構成しましたが、有効になりません.デフォルトではjavaが使用されているためです.sql.Datasourceのクラスは属性を取得します.一部の属性datasourceはありません.構成を有効にするには、Druidのプロファイルを手動で作成する必要があります.
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DruidDataSource druidDataSource(){
      return new DruidDataSource();
}

Druidの最も強力な点は、データベースに送信されたすべてのsql文を監視できる強力な監視があることです.後でエラーを挿入するのに便利です.
次にDruidDataSourceでモニタセンターを構成します.
 /**
     *        
     * @return        servlet  
     * @author SimpleWu
     */
    @Bean
    public ServletRegistrationBean statViewServlet() {
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        //   IP   
        servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
        //   IP   ,           ,        
        servletRegistrationBean.addInitParameter("deny", "127.0.0.1");
        //          
        servletRegistrationBean.addInitParameter("loginUsername", "SimpleWu");
        servletRegistrationBean.addInitParameter("loginPassword", "123456");
        //         
        servletRegistrationBean.addInitParameter("resetEnable", "false");
        return servletRegistrationBean;
    }

    /**
     *        
     *
     * @return          
     */
    @Bean
    public FilterRegistrationBean statFilter() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
        //       
        filterRegistrationBean.addUrlPatterns("/*");
        //       
        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*,");
        return filterRegistrationBean;
    }

構成が完了したらSpringBootプログラムのアクセスを開始します.
http://localhost:8080/druid/私たちのログインページに来ることができます.私たちが追加したコンソール管理ユーザーです.私たちは運行状況をよく見ることができます.画像はスクリーンショットを貼らないのは面倒です.