Druid源码分析(九)-- 总结

10 篇文章 1 订阅
本文总结了Druid数据库连接池的源码分析,包括初始化流程、连接创建与管理、SQL执行过程以及如何通过shrink函数收缩连接池。重点讨论了双重校验锁、SPI机制、中断感知锁、细粒度锁、责任链模式、包装策略、池化技术和使用最新版本的重要性。
摘要由CSDN通过智能技术生成

Druid源码分析(九)-- 总结

init

经过前面那么多天的分析,我们了解了连接池从初始化、创建连接、获取连接、关闭连接、归还连接到收缩连接的整个流程。

下面是init函数的流程
在这里插入图片描述

数据库连接池

下面是数据库连接池执行sql的流程,还有某些情况下会调用shrink 函数收缩连接池
在这里插入图片描述

总结

这么多天源码分析下来,学到了很多东西
1.双重校验+锁
2.SPI机制
3.如果需要监听锁的中断状态,可以使用 lockInterruptibly 函数
4.锁的粒度要尽可能的小,多分段使用锁
5.责任链模式
6.想扩展一个东西, 可以包装一层,比如DruidConnectionHolder 包装了原始的数据库连接Connection
7.善用池化技术,比如这个数据库连接池,关闭连接后没有真的关闭连接,而是清除属性后把连接回收到连接池,减少每次新创建连接的损耗
8.最好使用最新的release版本,比如Druid目前最新是1.2.8,因为有些参数在新版已经被舍弃了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值