常用的 Druid 参数
Druid 参数
- 连接池初始化大小 最大连接数 最小空闲连接数这几个连接数有什么作用, 他们的关系是怎么样的
- 初始连接数如果都被占用了, 连接池会创建最小空闲数个连接吗
官网: Druid | Database for modern analytics applications (apache.org)
Druid 是一个功能强大的连接池,支持众多的参数配置,以下是一些常用的 Druid 参数:
- 基本参数:
url
:数据库连接地址。username
:数据库用户名。password
:数据库密码。driverClassName
:JDBC 驱动类名。
- 连接池参数:
initialSize
:连接池初始化大小。maxActive
:最大连接数。minIdle
:最小空闲连接数。maxWait
:连接等待超时时间。testOnBorrow
:连接池中连接是否可用。testWhileIdle
:连接池中连接空闲时间是否超时。validationQuery
:验证连接是否可用的 SQL 语句。
- 防火墙参数:
filters
:SQL 防火墙过滤器列表,用于检查 SQL 语句是否存在安全漏洞。useGlobalDataSourceStat
:是否开启全局统计功能,用于监控连接池性能和状态。
- 监控参数:
statViewServlet
:Druid 监控页面 Servlet 的 URL。loginUsername
:Druid 监控页面登录用户名。loginPassword
:Druid 监控页面登录密码。resetEnable
:是否允许重置监控统计信息。
以上参数只是一些常用的 Druid 参数,还有很多其他的参数可以配置,具体需要根据实际应用场景和需求进行选择和调整。需要注意的是,Druid 的参数配置比较灵活,但也需要了解一些高级参数和技术,避免因为配置不当导致的稳定性和性能问题。
连接池初始化大小 最大连接数 最小空闲连接数这几个连接数有什么作用, 他们的关系是怎么样的
initialSize
参数表示连接池初始化时创建的连接数。在应用程序启动时,连接池会创建initialSize
个连接,用于处理应用程序的初次请求。如果应用程序的并发访问量较大,可以适当增加initialSize
参数的值,以避免连接池无法及时创建连接,导致请求被阻塞。maxActive
参数表示连接池中连接的最大数量。当连接池中的连接数达到maxActive
设置的值时,新的请求将被阻塞,直到有连接被释放。如果应用程序的并发访问量较大,需要适当增加maxActive
参数的值,以避免连接池中的连接不足,导致请求被阻塞。需要注意的是,maxActive
参数的设置应该根据数据库服务器的实际负载能力来进行调整,避免设置过大或过小的值。minIdle
参数表示连接池中保持空闲状态的最小连接数。当连接池中的空闲连接数小于minIdle
设置的值时,连接池会创建新的连接,以保证连接池中的连接数不会过低。如果应用程序的并发访问量较大,可以适当增加minIdle
参数的值,以提高连接池的响应速度。
这三个参数的关系如下:
- 初始连接数(
initialSize
)不能小于最小空闲连接数(minIdle
),且一般应该等于或略大于最小空闲连接数。 - 连接池中的最大连接数(
maxActive
)应该根据数据库服务器的负载能力来进行调整,避免设置过大或过小的值。 - 最小空闲连接数(
minIdle
)和最大连接数(maxActive
)的设置应该根据应用程序的实际负载情况来进行调整,以保证连接池的稳定性和性能。
初始连接数如果都被占用了, 连接池会创建最小空闲数个连接吗
当连接池中的所有连接都被占用时,连接池会根据最小空闲连接数(minIdle
)和最大连接数(maxActive
)的设置来判断是否需要创建新的连接。
如果当前连接池中的连接数小于最大连接数(maxActive
),连接池会创建新的连接来处理新的请求,直到连接数达到最大连接数为止。如果当前连接池中的连接数已经达到最大连接数,连接池会判断是否有空闲连接可用。如果当前空闲连接数小于最小空闲连接数(minIdle
),连接池会创建新的连接,直到空闲连接数达到最小空闲连接数为止。如果当前空闲连接数大于或等于最小空闲连接数,连接池会将当前请求阻塞,直到有连接被释放。
因此,如果连接池中的初始连接数都被占用了,连接池会根据最小空闲连接数和最大连接数的设置来创建新的连接,以满足应用程序的需求。需要注意的是,连接池中连接的创建和释放都需要一定的时间和资源开销,因此在设置连接池参数时需要综合考虑系统的负载情况和数据库服务器的性能指标,以保证连接池的性能和稳定性。