首页
学习
活动
专区
工具
TVP
发布

HikariCP源码解析系列

专栏成员
12
文章
12867
阅读量
15
订阅数
十二、Hikari:Apparent connection leak detected连接泄露分析
leak-detection-threshold:用来设置连接被占用的超时时间,单位为毫秒,默认为0,表示禁用连接泄露检测。
用户1422411
2022-06-25
2.5K0
十一、HikariCP源码分析之HouseKeeper
HouseKeeper是一个HikariPool的内部类,它实现了Runnable接口,也就是一个线程任务。这个任务是由ScheduledThreadPoolExecutor类型的线程池执行的,也就是说它是一个定时任务。我们在《HikariCP源码分析之初始化分析二》中分析 HikariCP 初始化的时候,遇到了houseKeepingExecutorService的初始化,简单分析了它的初始化过程,但是这个任务是非常重要的,我们要仔细分析一下。
用户1422411
2022-06-25
1.3K0
十、HikariCP源码分析之ConcurrentBag三
一般我们都是通过 Spring 来使用 HikariCP 的,自己动手启动一个连接池的机会还是少。在 Spring 中使用非常方便,一切都是 Spring 帮我们搞定,我们只管使用,所以需要将连接还回连接池的机会也比较少,也有可能你是间接用过,比如从 HikariCP 中借用的连接,用完之后调用了 close方法,连接其实并没有真正的被关闭,而是还回了连接池,真正的close方法被 HikariCP 重写了。其实这是一个至关重要的方法,如果借用出去的连接,不通过这个方法还回来,会导致内存泄露的。
用户1422411
2022-06-25
4140
九、HikariCP源码分析之ConcurrentBag二
OK,我们继续。这里遍历的 list 变量,是threadList,是当前线程使用过的连接,保存在本地线程的引用。
用户1422411
2022-06-25
3700
八、HikariCP源码分析之ConcurrentBag一
大家好,今天我们一起分析下 HikariCP 的核心ConcurrentBag,它是管理连接池的最重要的核心类。从它的名字大家可以看得出来,它是一个并发管理类,性能非常好,这是它性能甩其他连接池十条街的秘密所在。
用户1422411
2022-06-25
7790
七、HikariConfig初始化分析
HikariConfig有 3 个构造方法,这三个构造方法其实都差不多,无我们逐个看一下:
用户1422411
2022-06-25
6370
六、HikariConfig的配置解析
在《HikariCP源码分析之初始化分析一》中,我们解析了 HikariCP 的两种初始化方式,其中提到了使用HikariConfig的方式:
用户1422411
2022-06-25
2.6K0
五、HikariCP源码分析之初始化分析二
在上一节,我们说到了pool = fastPathPool = new HikariPool(this);中的new HikariPool(this)。我们来看下代码:
用户1422411
2022-06-25
6380
四、HikariCP源码分析之初始化分析一
HikariDataSource是 HikariCP 开放给用户使用连接池的主要操作类。所以,我们创建一个 HikariCP 的连接池,其实就是构造一个HikariDataSource。
用户1422411
2022-06-25
6220
三、HikariCP获取连接流程源码分析三
这里涉及到 HikariCP 的一个设计点,HikariCP的连接不是实时从连接池里剔除的,只是给连接上打个标记而已,都是在获取连接的时候检查是否可用,如果不可用的时候才直接从连接池里删除。如果在 HikariCP的任何地方都可能剔除连接,那么剔除连接的地方会比较多,会很乱,也容易引发 bug。反之,把剔除链接的操作收缩到某几个固定的逻辑中,就比较好管理。
用户1422411
2022-06-25
9800
二、HikariCP获取连接流程源码分析二
在上一篇《HikariCP获取连接流程源码分析一》中,我们分析了HikariDataSource的getConnection()方法,而这个方法,其实详细的实现细节都是在HikariPool的getConnection()方法中,我们来分析下HikariPool的getConnection()方法。
用户1422411
2022-06-25
7090
一、HikariCP获取连接流程源码分析一
HikariCP获取连接的方法是com.zaxxer.hikari.HikariDataSource#getConnection(), 这个方法在HikariDataSource类中。HikariDataSource类中是 HikariCP 提供用户使用的主要类,有获取连接,关闭连接池,剔除连接等方法。我们主要看一下getConnection(), 这是对外暴露的获取连接的方法,不管是Spring获取连接还是我们自己手工调用 HikariCP,都是调用这个方法从连接池中取连接。
用户1422411
2022-06-25
1.2K0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档