hikaricp

数据库链接池终于搞对了,从100ms优化到3ms!

眉间皱痕 提交于 2020-10-02 21:00:29
“ 我在研究 HikariCP(一个数据库连接池)时无意间在 HikariCP 的 Github wiki 上看到了一篇文章,这篇文章有力地消除了我一直以来的疑虑,看完之后感觉神清气爽。 图片来自 Pexels 本文内容 95% 译自这篇文章 : https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing 数据库连接池的配置是开发者们常常搞出坑的地方,在配置数据库连接池时,有几个可以说是和直觉背道而驰的原则需要明确。 1 万并发用户访问 想象你有一个网站,压力虽然还没到 Facebook 那个级别,但也有个 1 万上下的并发访问,也就是说差不多 2 万左右的 TPS。 那么这个网站的数据库连接池应该设置成多大呢?结果可能会让你惊讶,因为这个问题的正确问法是:“这个网站的数据库连接池应该设置成多小呢?” 下面这个视频是 Oracle Real World Performance Group 发布的,请先看完: http://www.dailymotion.com/video/x2s8uec 因为这视频是英文解说且没有字幕,我替大家做一下简单的概括:视频中对 Oracle 数据库进行压力测试,9600 并发线程进行数据库操作,每两次访问数据库的操作之间 sleep 550ms,一开始设置的中间件线程池大小为

测试记录: 连接池做一次结果集(ResultSet)测试

一世执手 提交于 2020-09-30 17:17:31
代码类: https://github.com/Chris2018998/BeeCP/blob/master/doc/temp/TestResultSet.java *******************开始测试数据源(BeeCP)******************* BeeCP-通过,<检查由executeQuery执行的结果值必须等于Statement.getResultSet()> BeeCP-通过,<结果集合关闭结果后,statement.getResultSet()不能再获取这个结果集合对象> BeeCP-通过,<unwrap测试ResultSet是否存在暴露问题(原生态对象不允许暴露给使用者)> BeeCP-通过,<unwrap测试Connection是否存在是否存在暴露问题(原生态对象不允许暴露给使用者)> BeeCP-通过,<检查关闭的这个结果集合isClosed()的返回值必须等于True> BeeCP-通过,<检查从一个已经关闭的Statement获取曾经打开过的结果集合要抛出异常> *******************开始测试数据源(HikariCP)******************* HikariCP-失败,<检查由executeQuery执行的结果值必须等于Statement.getResultSet()> HikariCP-通过,

第 1-2 课:Spring Boot 2.0 都更新了什么(上)

故事扮演 提交于 2020-09-25 10:56:27
2018 年 3 月 1 号 Spring Boot 2.0.0.RELEASE 正式发布,这是 Spring Boot 1.0 发布 4 年之后第一次重大修订,因此有多新功能和特性值得关注!在 Spring Boot 官方博客中我们了解到:Spring Boot 2.0 版本经历了 17 个月的开发,有 215 个不同的使用者提供了超过 6800 次的提交。 我们将 Spring Boot 2.0 更新的技术分为三类进行解读: 第一类,基础环境升级; 第二类,默认软件替换和优化; 第三类,新技术的引入。 基础环境升级 最低 JDK 8,支持 JDK 9,不再支持 Java 6 和 7 Spring Boot 2.0 要求 Java 8 作为最低版本,许多现有的 API 已更新,以利用 Java 8 的特性。例如,接口上的默认方法,函数回调以及新的 API,如 javax.time。如果你正在使用 Java 7 或更早版本,则在开发 Spring Boot 2.0 应用程序之前,需要升级你的 JDK。 Spring Boot 2.0 通过测试可以在 JDK 9 下正常运行,同时 Spring Boot 2.0 宣布不再支持 Java 6 和 7,据我了解国内绝大部分互联网公司的基本环境还在 JDK 7 或者 6 环境下运行,考虑升级 Spring Boot 2.0