HikariCP getConnection блокирует при установлении нового соединения - PullRequest
0 голосов
/ 03 декабря 2018

Я создаю приложение ETL, где мне нужно большое количество одновременных соединений, выполняющих длинные медленные запросы.Как правило, число одновременных подключений может достигать 100 в зависимости от компьютера, на котором запущено приложение.

Предположим, что для установления соединения с базой данных требуется около 2 с.Если я не использую пул и распараллеливаю извлечение соединения с 100 потоками, тогда все соединение все еще установлено приблизительно через 2 секунды.Однако, используя HikariCP, я заметил, что для установления 100 подключений в начале приложения, когда наблюдается всплеск запросов на подключение, требуется около 200 с для установления всех подключений, что часто приводит к тайм-ауту.

Это приводит меня к выводу, что получение нового соединения является блокирующим вызовом.Также кажется, что пул hikariCP инициализируется лениво, и я предполагаю, что после того, как он установит все 100 соединений, он попытается сохранить размер пула равным 100.

Есть ли способ включить более одновременное поведение при установлении соединений в hikariCP?Могу ли я по крайней мере заставить его одновременно инициализировать (установить 100 соединений) пул?

Можно сказать, что время для первоначальной установки всех соединений не имеет значения в течение времени жизни приложения, но я также хочу иметь тайм-аутустановить 30 секунд, что всегда приведет к исключению тайм-аута во время начального пикового запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...