关于java:一个比-c3p0-快-200-倍的数据库连接池这么牛

24次阅读

共计 1096 个字符,预计需要花费 3 分钟才能阅读完成。

小 Hub 领读:

怎么抉择数据库连接池,来看看这个 HikariCP 哈~


  • 作者:jianzh5
  • https://hacpai.com/article/15…

什么是数据库连接池

连接池是一种罕用的技术,为什么须要连接池呢?这个须要从 TCP 说起。如果咱们的服务器跟数据库没有部署在同一台机器,那么,服务器每次查询数据库都要先建设连贯,个别都是 TCP 链接,建设连贯就须要 3 次握手了,假如后盾服务跟数据库的单程的拜访工夫须要 10ms,那么光是建设连贯就花了 30ms,并且 TCP 还有慢启动的机制,实际上一次查问可能还不止 1 次 TCP 来回,查问效率就会大大降低。

为什么须要连接池

为了解决上述问题,咱们就须要保护一些长链接,这样就不必每次都去建设连贯,毕竟建设连贯除了占用工夫,还须要一些其余的系统资源。另外的益处,连接池让咱们更加容易地治理,一方面是能够防止数据库资源都被某几个 API 占据,另一方面也能够防止资源泄露。

什么是 HikariCP

HikariCP 是由在日本生存的美国人程序员开源的一个数据库连接池组件,代码十分轻量,并且速度十分的快。依据官网提供的数据,在 i7, 开启 32 个线程 32 个连贯的状况下,进行随机数据库读写操作,HikariCP 的速度是当初罕用的 C3P0 数据库连接池的数百倍。在 SpringBoot2.0 中,官网也是举荐应用 HikariCP。

为什么 HikariCP 会那么快

  1. 字节码更加精简,所以能够加载更多代码到缓存。
  2. 实现了一个无锁的汇合类型,来缩小并发造成的资源竞争。
  3. 应用了自定义的数组类型,绝对与 ArrayList 极大地晋升了性能。
  4. 针对 CPU 的工夫片算法进行优化,尽可能在一个工夫片外面实现各种操作。

与 Druid 比照

在 GitHub 上有网友贴出了阿里巴巴 Druid 与 hikari 的比照,认为 hikari 在性能上是齐全秒杀阿里巴巴的 Druid 连接池的。对此,阿里的工程师也做了肯定的回应,说 Druid 的性能略微差点是锁机制的不同,并且 Druid 提供了更丰盛的性能,两者的侧重点不一样。

如何抉择

抉择哪一款就见仁见智了,不过两款都是开源产品,阿里的 Druid 有中文的开源社区,交换起来更加不便,并且通过阿里多个零碎的试验,想必也是十分的稳固,而 Hikari 是 SpringBoot2.0 默认的连接池,全世界应用范畴也十分广,对于大部分业务来说,应用哪一款都是差不多的,毕竟性能瓶颈个别都不在连接池。大家可依据本人的爱好自由选择。

举荐浏览

太赞了,这个 Java 网站,什么我的项目都有!https://markerhub.com

这个 B 站的 UP 主,讲的 java 真不错!

太赞了!最新版 Java 编程思维能够在线看了!

正文完
 0