spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.idle-timeout=600000
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.minimum-idle=10
spring.datasource.hikari.maximum-pool-size=200

在Spring Boot应用程序中,HikariCP是默认的数据库连接池实现。配置参数用于优化和调整连接池的行为,以适应不同的应用场景。以下是对上述配置参数的解释:

spring.datasource.hikari.connection-timeout=30000

  • 含义:这个参数定义了获取连接的最大等待时间(毫秒)。如果超过此时间限制,且没有可用的连接,将会抛出一个SQLException
  • 适用场景:适用于需要控制从连接池获取连接的时间的应用程序。较高的值可能会导致请求被长时间挂起,特别是在高并发情况下;较低的值可以更快地失败并返回错误给调用者,但可能导致更多的超时异常。

spring.datasource.hikari.idle-timeout=600000

  • 含义:设置连接在池中保持空闲的最大时间(毫秒),超过该时间后,如果没有新的请求使用它,连接将被关闭。请注意,这不会影响当前正在使用的连接。
  • 适用场景:有助于回收不再活跃的连接,避免长期占用资源。对于那些可能有大量短暂空闲期的连接池来说特别有用,可以帮助减少不必要的资源消耗。

spring.datasource.hikari.max-lifetime=1800000

  • 含义:指定了连接的最大生命周期(毫秒)。一旦达到这个时间,即使连接仍然有效,也会被关闭并移除。新请求会创建新的连接。
  • 适用场景:用来防止潜在的数据库或驱动bug累积,通过定期刷新连接来保证连接池的健康状态。对于长时间运行的应用程序,特别是当怀疑可能存在连接泄露或其他内存问题时尤为重要。

spring.datasource.hikari.minimum-idle=10

  • 含义:设定连接池中至少要维持的空闲连接数。确保即使在低负载下也有一定数量的连接随时可用。
  • 适用场景:适用于期望快速响应的应用程序,在流量突然增加时能够立即提供服务而无需等待新的连接建立。最小空闲连接数应该根据预期的最低并发水平进行设置。

spring.datasource.hikari.maximum-pool-size=200

  • 含义:规定了连接池中允许存在的最大连接数。超过此数量的新请求将被阻塞直到有可用的连接。
  • 适用场景:决定了应用可以同时处理的最大并发数据库操作数。对于高并发环境,可能需要更大的池大小来支持更多并发用户;而对于低并发环境,则可以设置较小的值以节省资源。