[opt] change database connection pool from hikari to druid

This commit is contained in:
朱八 2020-07-23 21:58:25 +08:00
parent 4c9a647132
commit 362cdb8c83
6 changed files with 61 additions and 35 deletions

View File

@ -24,6 +24,7 @@
<mvn.invoker.version>3.0.1</mvn.invoker.version> <mvn.invoker.version>3.0.1</mvn.invoker.version>
<commons.net.version>3.6</commons.net.version> <commons.net.version>3.6</commons.net.version>
<fastjson.version>1.2.68</fastjson.version> <fastjson.version>1.2.68</fastjson.version>
<druid.starter.version>1.1.23</druid.starter.version>
<!-- 部署时跳过该module --> <!-- 部署时跳过该module -->
<maven.deploy.skip>true</maven.deploy.skip> <maven.deploy.skip>true</maven.deploy.skip>
@ -78,6 +79,18 @@
<artifactId>spring-boot-starter-data-jpa</artifactId> <artifactId>spring-boot-starter-data-jpa</artifactId>
<version>${springboot.version}</version> <version>${springboot.version}</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.starter.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId> <artifactId>spring-boot-starter-data-mongodb</artifactId>

View File

@ -1,9 +1,7 @@
package com.github.kfcfans.powerjob.server.persistence.config; package com.github.kfcfans.powerjob.server.persistence.config;
import com.zaxxer.hikari.HikariConfig; import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
import com.zaxxer.hikari.HikariDataSource;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
@ -19,26 +17,17 @@ import javax.sql.DataSource;
@Configuration @Configuration
public class MultiDatasourceConfig { public class MultiDatasourceConfig {
private static final String H2_JDBC_URL = "jdbc:h2:file:~/powerjob-server/h2/powerjob_server_db";
@Primary @Primary
@Bean("omsCoreDatasource") @Bean("omsCoreDatasource")
@ConfigurationProperties(prefix = "spring.datasource.core") @ConfigurationProperties(prefix = "spring.datasource.druid.core")
public DataSource initOmsCoreDatasource() { public DataSource initOmsCoreDatasource() {
return DataSourceBuilder.create().build(); return DruidDataSourceBuilder.create().build();
} }
@Bean("omsLocalDatasource") @Bean("omsLocalDatasource")
@ConfigurationProperties(prefix = "spring.datasource.druid.local")
public DataSource initOmsLocalDatasource() { public DataSource initOmsLocalDatasource() {
return DruidDataSourceBuilder.create().build();
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);
} }
} }

View File

@ -1,13 +1,15 @@
oms.env=DAILY oms.env=DAILY
logging.config=classpath:logback-dev.xml logging.config=classpath:logback-dev.xml
####### 数据库配置 ####### ####### 外部数据库配置(需要用户更改为自己的数据库配置) #######
spring.datasource.core.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.druid.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.druid.core.url=jdbc:mysql://remotehost:3306/powerjob-daily?useUnicode=true&characterEncoding=UTF-8
spring.datasource.core.username=root spring.datasource.druid.core.username=root
spring.datasource.core.password=No1Bug2Please3! spring.datasource.druid.core.password=No1Bug2Please3!
spring.datasource.core.hikari.maximum-pool-size=20 spring.datasource.druid.core.initial-size=5
spring.datasource.core.hikari.minimum-idle=5 spring.datasource.druid.core.max-active=20
spring.datasource.druid.core.test-while-idle=false
spring.datasource.druid.core.name=remoteDatasource
####### mongoDB配置非核心依赖可移除 ####### ####### mongoDB配置非核心依赖可移除 #######
spring.data.mongodb.uri=mongodb://remotehost:27017/powerjob-daily spring.data.mongodb.uri=mongodb://remotehost:27017/powerjob-daily

View File

@ -2,12 +2,14 @@ oms.env=PRE
logging.config=classpath:logback-product.xml logging.config=classpath:logback-product.xml
####### 数据库配置 ####### ####### 数据库配置 #######
spring.datasource.core.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.druid.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.druid.core.url=jdbc:mysql://remotehost:3306/powerjob-pre?useUnicode=true&characterEncoding=UTF-8
spring.datasource.core.username=root spring.datasource.druid.core.username=root
spring.datasource.core.password=No1Bug2Please3! spring.datasource.druid.core.password=No1Bug2Please3!
spring.datasource.core.hikari.maximum-pool-size=20 spring.datasource.druid.core.initial-size=5
spring.datasource.core.hikari.minimum-idle=5 spring.datasource.druid.core.max-active=20
spring.datasource.druid.core.test-while-idle=false
spring.datasource.druid.core.name=remoteDatasource
####### mongoDB配置非核心依赖可移除 ####### ####### mongoDB配置非核心依赖可移除 #######
spring.data.mongodb.uri=mongodb://remotehost:27017/powerjob-pre spring.data.mongodb.uri=mongodb://remotehost:27017/powerjob-pre

View File

@ -2,12 +2,14 @@ oms.env=PRODUCT
logging.config=classpath:logback-product.xml logging.config=classpath:logback-product.xml
####### 数据库配置 ####### ####### 数据库配置 #######
spring.datasource.core.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.druid.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.druid.core.url=jdbc:mysql://localhost:3306/powerjob-product?useUnicode=true&characterEncoding=UTF-8
spring.datasource.core.username=root spring.datasource.druid.core.username=root
spring.datasource.core.password=No1Bug2Please3! spring.datasource.druid.core.password=No1Bug2Please3!
spring.datasource.core.hikari.maximum-pool-size=20 spring.datasource.druid.core.initial-size=5
spring.datasource.core.hikari.minimum-idle=5 spring.datasource.druid.core.max-active=20
spring.datasource.druid.core.test-while-idle=false
spring.datasource.druid.core.name=remoteDatasource
####### mongoDB配置非核心依赖可移除 ####### ####### mongoDB配置非核心依赖可移除 #######
spring.data.mongodb.uri=mongodb://localhost:27017/powerjob-product spring.data.mongodb.uri=mongodb://localhost:27017/powerjob-product

View File

@ -11,6 +11,24 @@ spring.servlet.multipart.file-size-threshold=0
spring.servlet.multipart.max-file-size=209715200 spring.servlet.multipart.max-file-size=209715200
spring.servlet.multipart.max-request-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 文件中) ###### ###### PowerJob 自身配置(该配置只允许存在于 application.properties 文件中) ######
# akka ActorSystem 服务端口 # akka ActorSystem 服务端口
oms.akka.port=10086 oms.akka.port=10086