写点什么

Druid 连接池源码阅读 02

作者:石小天
  • 2022 年 5 月 12 日
  • 本文字数:435 字

    阅读完需:约 1 分钟

DataSource 类是 druid 连接池的核心类。

  • DruidDataSource 的构造方法

  • DruidDataSource 的构造方法有两个,如下图所示

    构造方法可以指定 DruidDataSource 是否使用公平锁,默认使用公平锁。

  • 初始化

  • 每次获取 Connection 都会调用 init,内部使用 inited 标识 DataSource 是否已经初始化完成

    init 主要完成以下工作:

    初始化 Filter

    加载数据库驱动 Driver

    根据不同的数据库,实例化 ExceptionSorter

    初始化连接检测器,不同数据库的实现不一样。

    初始化 JdbcDataSourceStat,主要目的是做监控。

    初始化 connections、evictConnections、keepAliveConnections 数组,分别用于存放可被获取的连接池、待清理的连接池、存活的连接池,数组的大小都是 maxActive

    初始化 initialSize 个 Connection

    开启 LogStatsThread 线程,用于定期打印 DruidDataSource 的一些数据,默认是不开启的,需要开启的话只需要设置 timeBetweenLogStatsMillis 指定打印的时间周期,log 步骤需要获取主锁

    创建 CreateConnectionThread 线程

    创建 DestroyConnectionThread 线程

初始化工作做了很多步骤,这一步也非常重要


用户头像

石小天

关注

还未添加个人签名 2018.11.07 加入

还未添加个人简介

评论

发布
暂无评论
Druid连接池源码阅读02_石小天_InfoQ写作社区