Отношения SpringBoot и HikariCP
SpringBoot уже управляет dataConnection, тогда зачем нужен Hikari CP?
Я только начал использовать SpringBoot, поэтому не знаю много о связях SpringBoot и Hikari, хотя я читал о Hikari, но не смог найти какого-либо явного объяснения его связи с Springboot при наличии подключения к данным Spring.
Я читал, что Hikari используется, когда нам нужны тяжелые операции с БД с большим количеством соединений. Если это правда, то не следует ли нам использовать Hikari в следующем сценарии?
Сценарий:
Существует небольшое приложение, в котором максимум 8-10 вызовов REST раз в месяц или максимум две недели. Это приложение должно выполнять некоторые вычисления, связанные с вероятностью и статистикой.
Пользователи, входящие в это приложение одновременно, имеют максимум 2-3 числа.
Нам все еще нужно использовать Hikari?
3 ответа
Существует два способа связи с базой данных из вашего приложения. Вы можете открыть новое соединение с БД в любое время, когда захотите выполнить какой-либо запрос, или у вас есть пул соединений. Пул соединений - это набор соединений многократного использования, которые приложение использует для связи с БД. Поскольку установка нового соединения является относительно дорогой операцией, использование пула соединений дает вам значительное улучшение производительности.
HikariCP - одна из библиотек пулов соединений, доступных в java, и SpringBoot использует ее по умолчанию. Поскольку вам не нужно делать ничего особенного, чтобы иметь это в своем приложении, просто наслаждайтесь бесплатным обедом:)
HikariCP используется в качестве пула соединений по умолчанию в SpringBoot2, это был TomcatJDBC в SpringBoot 1. Вы должны использовать его в качестве настроек по умолчанию. При необходимости вы можете перезаписать его, установив другой пул соединений в свойствах настроек. Более подробную информацию о пулах соединений и конфигурациях по умолчанию версий Spring Boot вы найдете здесь.
Hikari — это реализация DataSource по умолчанию в Spring Boot 2. Это означает, что нам не нужно добавлять явную зависимость в pom.xml. Spring-boot-starter-JDBC и spring-boot-starter-data-JPA разрешают это по умолчанию. Подводя итог, можно сказать, что при использовании Spring Boot 2 никаких дополнительных действий не требуется. По сравнению с другими реализациями он обещает быть легким и более производительным.
Настройка параметров конфигурации Hikari:
- spring.datasource.hikari.connection-timeout = 20000 # максимальное количество миллисекунд, в течение которых клиент будет ожидать подключения
- spring.datasource.hikari.minimum-idle= 10 #минимальное количество простаивающих соединений, поддерживаемых HikariCP в пуле соединений
- spring.datasource.hikari.maximum-pool-size= 10 #максимальный размер пула
- spring.datasource.hikari.idle-timeout =10000 #максимальное время простоя для подключения
- spring.datasource.hikari.max-lifetime= 1000 # максимальное время жизни в миллисекундах соединения в пуле после его закрытия.
- spring.datasource.hikari.auto-commit =true #Поведение автоматической фиксации по умолчанию.
HikariCP — это надежный высокопроизводительный пул соединений JDBC. Он намного быстрее, легче и имеет лучшую производительность по сравнению с другими API-интерфейсами пула соединений. По всем этим веским причинам HikariCP теперь является реализацией пула по умолчанию в Spring Boot 2. В этой статье мы более подробно рассмотрим настройку Hikari с Spring Boot.