Spring Boot 连接池

锺繇
• 阅读 1847
带着疑问去看连接池问题:
  1. 连接池用于哪些方面?
  2. 什么情况下需要用到连接池?
  3. 连接池的出现是基于什么背景创建的?
  4. 连接池相对于正常创建流程在哪些方面有优势?
  5. 正常创建数据库连接对资源的损耗体现在哪里?~~~~
    连接池主要应用于需要频繁创建数据库连接的场景,它的出现是为了节约正常连接下所消耗的时间,实现高效,安全的连接复用。
    在正常访问数据库时,某些时候需要以各种方式频繁访问数据库,如果我们在每一次操作时都执行一次连接创建,又要基于线程消耗不断的销毁已经用过的连接,在这个过程中显然会消耗很多资源,数据库与jdbc的连接与销毁需要经过三次握手与四次挥手,其所消耗的时长或许要高于所传递信息执行的时间。
    以连接池的方式去建立连接可以有效的减少时间上的消耗,因为连接池会保存与数据库之间的连接,廖雪峰的官方网站上对连接池的描述是:一开始,连接池内部并没有连接,所以,第一次调用ds.getConnection(),会迫使连接池内部先创建一个Connection,再返回给客户端使用。当我们调用conn.close()方法时(在try(resource){...}结束处),不是真正“关闭”连接,而是释放到连接池中,以便下次获取连接时能直接返回。
    我对这段话的理解为连接池会保存当前已经使用完的连接,也就是close之后的连接,(把正常流程下应该close掉的连接保存起来并标记为空闲)这样一来就省去了这部分的销毁时间,而在下次需要连接时又可以将空闲的连接发布出去,这样又节省了创建的时间,随着连接的不断更新创建,连接池中就会有一定的存储量,而又因为只有连接池中的连接不够用时它才会去创建新的连接。又可以一定程度上实现资源的合理利用。

    在spring Boot2中已经默认使用HikariCP,所以 HikariCP 会默认在 spring-boot-starter-jdbc 中附加依赖,因此不需要主动添加 HikariCP 的依赖。~~~~

点赞
收藏
评论区
推荐文章
Stella981 Stella981
4年前
SpringBoot 开启Druid监控统计功能教程
Druid数据连接池简介Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。性能好,同时自带监控页面,可以实时监控应用的连接池情况以及其中性能差的sql,方便我们找出应用中连接池方面的问题。Druid是一个JDBC组件,它包括三部分:1.DruidDriver代理
Stella981 Stella981
4年前
Druid 监控分布式解决方案
什么是DruidMonitorDruid是一个非常强大的数据库连接池,但是它的强大并不仅仅体现在作为一个高性能连接池加快数据访问上和连接管理上,它内置了一个强大的监控工具:DruidMonitor。不仅可以监控数据源和慢查询,还可以监控Web应用、URI监控、Session监控、Spring监
Easter79 Easter79
4年前
Tomcat8.5&Mysql8.0配置数据库连接池(DBCP)
DBCP(DataBaseconnectionpool),数据库连接池。是apache上的一个java连接池项目,也是tomcat使用的连接池组件。由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。百度百科(htt
Stella981 Stella981
4年前
Druid连接池简单入门配置
偶尔的机会解释Druid连接池,后起之秀,但是评价不错,另外由于是阿里淘宝使用过的所以还是蛮看好的。Druid集连接池,监控于一体整好复合当前项目的需要,项目是ssh结构,之前是用C3p0的,现在换一个连接池也是很简单的,首先spring配置DataSource,配置如下:<bean id"dataSource" class"co
Wesley13 Wesley13
4年前
MYSQL进阶学习笔记十四:MySQL 应用程序优化!(视频序号:进阶_32)
知识点十五:MySQL 的应用程序优化(32)一、访问数据库采用连接池把连接当做对象或设备,统一放在‘连接池’里。凡是需要访问数据库的地方都从连接池里取连接二、采用缓存减少对于MySQL的访问:         
Wesley13 Wesley13
4年前
JDBC连接池 JDBCTemplate
1.数据库连接池2.SpringJDBC:JDBCTemplate数据库连接池1.概念:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对
Stella981 Stella981
4年前
Spring4.0 + druid 配置动态配置数据源以及多数据源切换功能实现
数据源连接池使用druid其他的数据源基本原理相同spring中配置默认数据源连接池如下:<!数据源配置,使用BoneCP数据库连接池   <beanid"dataSourceOne"class"com.alibaba.druid.pool.DruidDataSource"initmethod"
Stella981 Stella981
4年前
SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
作为后台服务开发,在日常工作中我们天天都在跟数据库打交道,一直在进行各种CRUD操作,都会使用到数据库连接池。按照发展历程,业界知名的数据库连接池有以下几种:c3p0、DBCP、TomcatJDBCConnectionPool、Druid等,不过最近最火的是HiKariCP。HiKariCP号称是业界跑得最快的数据库连接池,自从Spring
Stella981 Stella981
4年前
Python client for Redis 官翻文档2.10.1(二)
更多的细节连接池:在幕后,redispy使用连接池管理连接到redisserver的连接.默认,一旦你创建了一个Redis的实例,这个实例相应有自己的连接池。你可以重写此行为,在创建一个Redis实例的时候指定一个创建的连接池,告诉这个实例是使用哪个连接。(我的理解:如果存在多个redisserver,指定连接哪个
弹性数据库连接池探活策略调研(二)——Druid | 京东云技术团队
前言在中,我们介绍了弹性数据库连接失效的背景,并探讨了HikariCP连接池探活策略的相关内容。在本文中,我们将会继续探讨另一个线上常用的连接池——Druid,并为您介绍如何在使用Druid时实现最佳实践的弹性数据库连接池探活策略。DruidDruid的版
弹性数据库连接池探活策略调研(三)——DBCP | 京东云技术团队
在之前的文章中,我们介绍了弹性数据库连接失效的背景,并探讨了HikariCP、Druid连接池探活策略的相关内容。在本文中,我们将会继续探讨另一个线上常用的连接池——DBCP,并为您介绍如何在使用DBCP时实现最佳实践的弹性数据库连接池探活策略。
锺繇
锺繇
Lv1
牵挂在心中,无言也温暖,朋友在身边,踏实也心安。
文章
4
粉丝
0
获赞
0