系列文章是博主对沈剑的《架构师训练营》分享内容的个人笔记总结,原内容公众号“成为架构师”。
在互联网架构中,我们常有访问下游的需求,包括但不限于:微服务、缓存、数据库。而连接池就是这些访问中的一个重要组件,本篇主要是对微服务中的重要组件 —— 连接池的核心设计思路进行一个简单的阐释。
如何访问下游
在不使用连接池的情况下
就像把大象放进冰箱一样,有三个步骤,打开冰箱,放进去,关上冰箱(虽然这是讽刺空谈)但现实就是如此,在没有连接池的情况下,我们调用下游服务通常就是:
- 建立连接(Connection)
- 通过连接,收发请求
- 关闭连接
在早期使用jdbc的时候,我们都会下载一个比如说mysql-jdbc的driver,然后根据官方文档,学习如何建立连接,通过连接访问数据库,进行增删查改,操作完之后释放连接,简单来讲,也就是上述三步。1、3两步我们可以称之为new和close
有连接池的情况
有连接池的情况,访问下游服务也是三步:
- 拿一个连接
- 通过链接,收发请求
- 放回连接
这次的1、3两步我们可以称之为get和free,连接池事先建立好了比如说与数据库的连接,维护这个连接的数组就是连接池的核心数据结构
连接池的核心接口
连接池操