From 362cdb8c8356b21f2c5ae26d1ec613ab564caa2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E5=85=AB?= Date: Thu, 23 Jul 2020 21:58:25 +0800 Subject: [PATCH] [opt] change database connection pool from hikari to druid --- powerjob-server/pom.xml | 13 ++++++++++++ .../config/MultiDatasourceConfig.java | 21 +++++-------------- .../resources/application-daily.properties | 16 +++++++------- .../main/resources/application-pre.properties | 14 +++++++------ .../resources/application-product.properties | 14 +++++++------ .../src/main/resources/application.properties | 18 ++++++++++++++++ 6 files changed, 61 insertions(+), 35 deletions(-) diff --git a/powerjob-server/pom.xml b/powerjob-server/pom.xml index 86e187f4..f290a457 100644 --- a/powerjob-server/pom.xml +++ b/powerjob-server/pom.xml @@ -24,6 +24,7 @@ 3.0.1 3.6 1.2.68 + 1.1.23 true @@ -78,6 +79,18 @@ spring-boot-starter-data-jpa ${springboot.version} + + + com.alibaba + druid-spring-boot-starter + ${druid.starter.version} + + + org.springframework.boot + spring-boot-autoconfigure + + + org.springframework.boot spring-boot-starter-data-mongodb diff --git a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/persistence/config/MultiDatasourceConfig.java b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/persistence/config/MultiDatasourceConfig.java index c2beeb49..dcab5c34 100644 --- a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/persistence/config/MultiDatasourceConfig.java +++ b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/persistence/config/MultiDatasourceConfig.java @@ -1,9 +1,7 @@ package com.github.kfcfans.powerjob.server.persistence.config; -import com.zaxxer.hikari.HikariConfig; -import com.zaxxer.hikari.HikariDataSource; +import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; @@ -19,26 +17,17 @@ import javax.sql.DataSource; @Configuration public class MultiDatasourceConfig { - private static final String H2_JDBC_URL = "jdbc:h2:file:~/powerjob-server/h2/powerjob_server_db"; @Primary @Bean("omsCoreDatasource") - @ConfigurationProperties(prefix = "spring.datasource.core") + @ConfigurationProperties(prefix = "spring.datasource.druid.core") public DataSource initOmsCoreDatasource() { - return DataSourceBuilder.create().build(); + return DruidDataSourceBuilder.create().build(); } @Bean("omsLocalDatasource") + @ConfigurationProperties(prefix = "spring.datasource.druid.local") public DataSource initOmsLocalDatasource() { - - HikariConfig config = new HikariConfig(); - config.setDriverClassName("org.h2.Driver"); - config.setJdbcUrl(H2_JDBC_URL); - config.setAutoCommit(true); - // 池中最小空闲连接数量 - config.setMinimumIdle(4); - // 池中最大连接数量 - config.setMaximumPoolSize(32); - return new HikariDataSource(config); + return DruidDataSourceBuilder.create().build(); } } diff --git a/powerjob-server/src/main/resources/application-daily.properties b/powerjob-server/src/main/resources/application-daily.properties index 5d3a6146..8da45bb0 100644 --- a/powerjob-server/src/main/resources/application-daily.properties +++ b/powerjob-server/src/main/resources/application-daily.properties @@ -1,13 +1,15 @@ oms.env=DAILY logging.config=classpath:logback-dev.xml -####### 数据库配置 ####### -spring.datasource.core.driver-class-name=com.mysql.cj.jdbc.Driver -spring.datasource.core.jdbc-url=jdbc:mysql://localhost:3306/powerjob-daily?useUnicode=true&characterEncoding=UTF-8 -spring.datasource.core.username=root -spring.datasource.core.password=No1Bug2Please3! -spring.datasource.core.hikari.maximum-pool-size=20 -spring.datasource.core.hikari.minimum-idle=5 +####### 外部数据库配置(需要用户更改为自己的数据库配置) ####### +spring.datasource.druid.core.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.druid.core.url=jdbc:mysql://remotehost:3306/powerjob-daily?useUnicode=true&characterEncoding=UTF-8 +spring.datasource.druid.core.username=root +spring.datasource.druid.core.password=No1Bug2Please3! +spring.datasource.druid.core.initial-size=5 +spring.datasource.druid.core.max-active=20 +spring.datasource.druid.core.test-while-idle=false +spring.datasource.druid.core.name=remoteDatasource ####### mongoDB配置,非核心依赖,可移除 ####### spring.data.mongodb.uri=mongodb://remotehost:27017/powerjob-daily diff --git a/powerjob-server/src/main/resources/application-pre.properties b/powerjob-server/src/main/resources/application-pre.properties index f2d33b88..437980ff 100644 --- a/powerjob-server/src/main/resources/application-pre.properties +++ b/powerjob-server/src/main/resources/application-pre.properties @@ -2,12 +2,14 @@ oms.env=PRE logging.config=classpath:logback-product.xml ####### 数据库配置 ####### -spring.datasource.core.driver-class-name=com.mysql.cj.jdbc.Driver -spring.datasource.core.jdbc-url=jdbc:mysql://remotehost:3306/powerjob-pre?useUnicode=true&characterEncoding=UTF-8 -spring.datasource.core.username=root -spring.datasource.core.password=No1Bug2Please3! -spring.datasource.core.hikari.maximum-pool-size=20 -spring.datasource.core.hikari.minimum-idle=5 +spring.datasource.druid.core.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.druid.core.url=jdbc:mysql://remotehost:3306/powerjob-pre?useUnicode=true&characterEncoding=UTF-8 +spring.datasource.druid.core.username=root +spring.datasource.druid.core.password=No1Bug2Please3! +spring.datasource.druid.core.initial-size=5 +spring.datasource.druid.core.max-active=20 +spring.datasource.druid.core.test-while-idle=false +spring.datasource.druid.core.name=remoteDatasource ####### mongoDB配置,非核心依赖,可移除 ####### spring.data.mongodb.uri=mongodb://remotehost:27017/powerjob-pre diff --git a/powerjob-server/src/main/resources/application-product.properties b/powerjob-server/src/main/resources/application-product.properties index 0a4e2556..45e47949 100644 --- a/powerjob-server/src/main/resources/application-product.properties +++ b/powerjob-server/src/main/resources/application-product.properties @@ -2,12 +2,14 @@ oms.env=PRODUCT logging.config=classpath:logback-product.xml ####### 数据库配置 ####### -spring.datasource.core.driver-class-name=com.mysql.cj.jdbc.Driver -spring.datasource.core.jdbc-url=jdbc:mysql://localhost:3306/powerjob-product?useUnicode=true&characterEncoding=UTF-8 -spring.datasource.core.username=root -spring.datasource.core.password=No1Bug2Please3! -spring.datasource.core.hikari.maximum-pool-size=20 -spring.datasource.core.hikari.minimum-idle=5 +spring.datasource.druid.core.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.druid.core.url=jdbc:mysql://localhost:3306/powerjob-product?useUnicode=true&characterEncoding=UTF-8 +spring.datasource.druid.core.username=root +spring.datasource.druid.core.password=No1Bug2Please3! +spring.datasource.druid.core.initial-size=5 +spring.datasource.druid.core.max-active=20 +spring.datasource.druid.core.test-while-idle=false +spring.datasource.druid.core.name=remoteDatasource ####### mongoDB配置,非核心依赖,可移除 ####### spring.data.mongodb.uri=mongodb://localhost:27017/powerjob-product diff --git a/powerjob-server/src/main/resources/application.properties b/powerjob-server/src/main/resources/application.properties index 1078fa1d..5586f466 100644 --- a/powerjob-server/src/main/resources/application.properties +++ b/powerjob-server/src/main/resources/application.properties @@ -11,6 +11,24 @@ spring.servlet.multipart.file-size-threshold=0 spring.servlet.multipart.max-file-size=209715200 spring.servlet.multipart.max-request-size=209715200 +# 内嵌 H2 数据库配置信息,一般情况无需更改 +spring.datasource.druid.local.driver-class-name=org.h2.Driver +spring.datasource.druid.local.url=jdbc:h2:file:~/powerjob-server/h2/powerjob_server_db +spring.datasource.druid.local.initial-size=4 +spring.datasource.druid.local.max-active=32 +spring.datasource.druid.local.test-while-idle=false +spring.datasource.druid.local.name=localDatasource + +# druid 监控配置 +spring.datasource.druid.filters=stat +spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* +spring.datasource.druid.filter.stat.enabled=true +spring.datasource.druid.filter.stat.log-slow-sql=true +spring.datasource.druid.filter.stat.slow-sql-millis=2000 +spring.datasource.druid.stat-view-servlet.enabled=true +spring.datasource.druid.stat-view-servlet.login-username=powerjob +spring.datasource.druid.stat-view-servlet.login-password=powerjob + ###### PowerJob 自身配置(该配置只允许存在于 application.properties 文件中) ###### # akka ActorSystem 服务端口 oms.akka.port=10086