德鲁伊连接池在哪学习

德鲁伊连接池在哪学习,第1张

幽暗城。
我们预先创建好一部分连接,放在一个池中(集合),并且将这些连接标记为空闲状态。如果要使用连接就从池中获取一个连接使用,用完之后再次还回池中。连接池自己应该有自动初始化功能,自动增长功能,自动缩减功能。所谓自动增长就是当池中的连接都被使用之后,自动创建新的连接放入池中。所谓自动缩减就是当池中的空闲连接过多时,自动关闭部分连接。
德鲁伊是阿里巴巴开发的号称为监控而生的数据库连接池,是目前最好的数据库连接池。在功能、性能、扩展性方面,都超过其他数据库连接池,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况。已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。

public DruidPooledConnection getConnectionDirect(long maxWaitMillis) throws SQLException {
// 超时重试次数,达到这个值就报错
int notFullTimeoutRetryCnt = 0;
for (; ; ) {
// handle notFullTimeoutRetry
DruidPooledConnection poolableConnection;
try {
// 核心逻辑
poolableConnection = getConnectionInternal(maxWaitMillis);
} catch (GetConnectionTimeoutException ex) {
if (notFullTimeoutRetryCnt <= thisnotFullTimeoutRetryCount && !isFull()) {
notFullTimeoutRetryCnt++;
if (LOGisWarnEnabled()) {
LOGwarn("get connection timeout retry : " + notFullTimeoutRetryCnt);
}
continue;
}
throw ex;
}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13399390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存