上一页 1 2 3 4 5 6 7 8 ··· 19 下一页
摘要: 现象 idea版本: IntelliJ IDEA 2021.1.1 (Ultimate Edition) Build #IU-211.7142.45, built on April 30, 2021 lombok版本 1.18.16 编译的时候报错: java: You aren't using a 阅读全文
posted @ 2021-06-01 08:33 mushishi 阅读(13294) 评论(0) 推荐(6) 编辑
摘要: 背景 核心服务、并发较高,查询接接口最高几万qps 对停顿比较敏感 jvm par new + cms、 堆分配较大,老年代6g、old gc水位 3G左右 ygc几分钟一次、full gc 十天一次 分库分表,对应多个数据库连接池对象 问题发现 stw告警,full gc stw超过500ms 查 阅读全文
posted @ 2021-04-16 00:54 mushishi 阅读(936) 评论(0) 推荐(0) 编辑
摘要: 校验时机 从 hikariPool#getConnection() 拿到的连接,如果空闲超过 500ms则要检查它的有效性 PoolBase#isConnectionActive() public Connection getConnection(final long hardTimeout) th 阅读全文
posted @ 2021-04-16 00:53 mushishi 阅读(2027) 评论(1) 推荐(0) 编辑
摘要: 它是为了实现比 LinkedBlockingQueue 和 LinkedTransferQueue 更高的性能而特别定制的,根据连接池的特殊场景做了一些性能优化 容器类定义 public class ConcurrentBag<T extends IConcurrentBagEntry> imple 阅读全文
posted @ 2021-04-16 00:52 mushishi 阅读(519) 评论(0) 推荐(1) 编辑
摘要: houseKeeper 定时检查空闲连接,对于超过 minimumIdle 的那部分db连接,如果空闲时长大于 idleTimeout 则关闭 softEvictConnection() db连接从创建后超过最大存活时长 maxLifeTime 的时候 softEvictConnection() 驱 阅读全文
posted @ 2021-04-16 00:51 mushishi 阅读(1703) 评论(0) 推荐(0) 编辑
摘要: 数据库连接池的最小连接为什么是Idle语义 druid的maxEvictableIdleTimeMillis 和 hikariCP 的 maxLifetime HikariCP HikariDataSource初识 HikariPool连接池初始化 Hikari申请db连接的过程 Hikari创建连 阅读全文
posted @ 2021-04-16 00:49 mushishi 阅读(175) 评论(0) 推荐(1) 编辑
摘要: HikariDataSource#getConnection → HikariPool#getConnection public Connection getConnection(final long hardTimeout) throws SQLException { suspendResumeL 阅读全文
posted @ 2021-04-16 00:44 mushishi 阅读(659) 评论(0) 推荐(0) 编辑
摘要: 在连接关闭 closeConnection() 的时候,会调用 fillPool() 进行填充到 minimumIdle 个连接 HikariPool连接池初始化 在连接池初始化时,会开启HouseKeeper 去定时检查,也会调用 fillPool() 去填充,但是如果 minimumIdle为0 阅读全文
posted @ 2021-04-16 00:42 mushishi 阅读(575) 评论(0) 推荐(0) 编辑
摘要: HikariCP 是面向 jdbc api 的数据库连接池,所以它肯定实现了 javax.sql.DataSource 接口 public class HikariDataSource extends HikariConfig implements DataSource, Closeable Hik 阅读全文
posted @ 2021-04-16 00:41 mushishi 阅读(2314) 评论(0) 推荐(0) 编辑
摘要: HouseKeeper 和 HikariPool#addBagItem 在需要新增db连接的时候,都是往负责连接创建的线程池 addConnectionExecutor 丢PoolEntryCreator implements Callable<Boolean> 任务 PoolEntryCreato 阅读全文
posted @ 2021-04-16 00:39 mushishi 阅读(775) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 19 下一页