hikariCP
从spring boot 2.X版本起,默认的数据连接池就改成了 hikariCP。 hikariCP 的性能及其优异,hikariCP号称java平台最快的数据库连接池。性能表现:hikariCP>druid>tomcat-jdbc>dbcp>c3p0。
这里就贴一下配置:application.yaml
spring:
profiles:
# 读取配置文件
active: dev
application:
name: orders-service
datasource:
hikari:
pool-name: KevinHikariPool
#最大连接数,小于等于0会被重置为默认值10;大于零小于1会被重置为minimum-idle的值
maximum-pool-size: 150
#最小空闲连接,默认值10,小于0或大于maximum-pool-size,都会重置为maximum-pool-size
minimum-idle: 20
#连接超时时间:毫秒,小于250毫秒,否则被重置为默认值30秒
connection-timeout: 60000
#空闲连接超时时间,默认值600000(10分钟),大于等于max-lifetime且max-lifetime>0,会被重置为0;
# 不等于0且小于10秒,会被重置为10秒。
# 只有空闲连接数大于最大连接数且空闲时间超过该值,才会被释放
idle-timeout: 500000
#连接最大存活时间.不等于0且小于30秒,会被重置为默认值30分钟.设置应该比mysql设置的超时时间短
max-lifetime: 540000
#连接测试查询
connection-test-query: SELECT 1
application-dev.yaml 配置
spring:
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
username: root
password: root
url: jdbc:mysql://localhost:3306/xffq?useUnicode=true&characterEncoding=utf-8
druid
领导不让用 hikariCP,只好按要求换成 druid,参考:
https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter
主要配置:
server:
port: 8931
spring:
profiles:
# 读取配置文件
active: dev
application:
name: orders-service
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
initial-size: 10
max-active: 100
min-idle: 10
max-wait: 10000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 30000
validation-query: select 'x'
# 申请连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
test-on-borrow: false
# 归还连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
test-on-return: false
#申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
test-while-idle: true
pool-prepared-statements: true
max-open-prepared-statements: 20
filter:
stat:
enabled: true
log-slow-sql: true
slow-sql-millis: 10000
db-type: mysql