建立新的连接时,HikariCP getConnection块

时间:2018-12-03 11:19:14

标签: java multithreading connection etl hikaricp

我正在创建一个ETL应用程序,实际上我需要大量并发连接来运行长时间缓慢的查询。并发连接数多达100个并不少见,这取决于运行该应用程序的计算机。

假设与数据库建立连接大约需要2秒钟。如果我不使用缓冲池并使用100个线程并行化连接检索,那么所有连接仍将在大约2s内建立。但是,在使用HikariCP时,我注意到在连接请求激增的情况下,在应用程序启动时建立100个连接的时间大约需要200秒才能建立所有连接,并且经常会导致超时。

这使我得出以下结论:获得新连接是阻塞呼叫。同样,似乎hikariCP池是延迟初始化的,我假设一旦建立了所有100个连接,它将尝试将池大小保持为100。

是否有一种方法可以使在hikariCP中建立连接的并发行为更多?我至少可以强迫它同时初始化(建立100个连接)池吗?

可以说初始建立所有连接的时间与应用程序的生命周期无关,但是我还想将超时设置为30秒,这将始终在初始峰值需求期间导致超时异常。

0 个答案:

没有答案