美文网首页
连接池原理

连接池原理

作者: 传葱 | 来源:发表于2019-06-12 09:16 被阅读0次

什么是连接池

  • 上游对下游发起的请求,比如数据库连接池crud操作

为什么使用连接池?

  • 如果不使用连接池,每次请求到达的时候建立连接也是可以的,但是随着请求并发变大,需要优化连接步骤:
  • 建立连接:(需要优化)
  • 发生请求:CRUD
  • 销毁连接(需要优化)
  • 每次请求到来需要建立连接,完成之后销毁连接,连接的创建和销毁带来很大的资源消耗,所有类似线程池,需要一个存储结构放置空闲的连接,以备下次连接来使用

连接池的实现

使用DruidDataSource,该类中变量分分为三种:记录状态的, 比如连接数量connectCount,关闭数量closeCount等;存储相关DruidConnectionHolder[] connection 这个数组中保存建立的连接对象,还记录活跃数量activeCount,废弃数量discardCount等,第三个记录线程DestroyTask destroyTask; CreateConnectionThread createConnectionThread; 这些大体上可以看出连接池中对象类型和大致功能

连接池核心功能

image.png
DruidConnectionHolder[] connections;

createConnection()
getConnection()
recycle()
  • 根据需要决定是否创建新的Connection,如果需要调用createConnection(),把创建好的connection对象保存到DruidConnectionHolder[] 中, 然后等待的线程使用创建好的连接getConnection(), 使用完之后connection对象不会被销毁,而是回收到数组中:recycle()方法


    image.png
  • 这个锁控制同一时间只有一个线程访问线程池,对线程池相关的数据进行修改

相关文章

  • MyBatis(3)连接池,动态sql,多表操作

    8.连接池 8.1 mybatis中的连接池3种配置选项: 8.2 unpool原理分析: 8.3 pool原理...

  • DBUtiles的使用

    自定义连接池: 学会用resourcebundle来加载properties文件 运用连接池的技术 连接池技术原理...

  • JDBC 进阶——连接池

    本文包括传统JDBC的缺点连接池原理自定义连接池开源数据库连接池DBCP连接池C3P0连接池Tomcat内置连接池...

  • 数据库连接池

    自定义连接池 只是简化的说明原理,而不是真实上线使用 第三方连接池 常用连接池: DBCP C3P0 DBCP ...

  • mybatis的由来

    mybatis原理深入解析 1. 连接池 JDBC、C3P0、DBCP、Druid 数据源连接池使用的对比总结 J...

  • Druid数据库连接池设计

    面试中可能被问到数据库连接池原理、如何设计一个数据库连接池等等问题,这边就参考DruidDataSource的设计...

  • 连接池原理

    什么是连接池 上游对下游发起的请求,比如数据库连接池crud操作 为什么使用连接池? 如果不使用连接池,每次请求到...

  • 据库连接池的原理

    这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理,以及当下最流行的开源数据库连接池jar包。 一...

  • 连接池

    数据库连接池 1、连接池原理 目的:解决建立数据库连接消耗资源和时间很多的问题,提高性能。 2、编写标准的数据源 ...

  • 技术演进的方式来谈谈数据库连接池的原理

    这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理,以及当下最流行的开源数据库连接池jar包。 一...

网友评论

      本文标题:连接池原理

      本文链接:https://www.haomeiwen.com/subject/eflcfctx.html