Spring JPA connection pool
Spring Boot JPA(2.x.x 기준)에서 사용 가능한 Connection Pool은 아래의 3가지가 있습니다.
- HikariCP
- Tomcat pooling Datasource
- Commons DBCP2
Spring Boot 1.x.x 에서는 Tomcat을 Default로 사용하였으나
Spring Boot 2.0.0 에서부터 default JDBC connection pool(이하 'CP')을 Tomcat에서 HikariCP로 변경하였습니다.
그래서 spring-boot-starter-jdbc, spring-boot-starter-data-jpa를 사용하면, HikariCP(가장 높음) -> Tomcat pooling -> Commons DBCP2 의 우선 순위로 CP가 적용 됩니다.
위의 우선순위를 무시하고 spring.datasource.type에 값을 설정해서 CP를 바로 설정도 가능합니다.
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
물론, dependency도 추가를 해주어야 합니다.
implementation 'org.apache.tomcat:tomcat-jdbc:9.0.45'
hikari와 tomcat의 벤치마크 결과를 보면 hikari가 압도적으로 성능이 좋습니다.
Spring Boot가 2.0.0으로 넘어갈 시기에 HikariCP가 Tomcat에 비해 성능이 월등히 좋아지게 되어 변경을 한것 같습니다.
spring boot datasource properties 값은 링크에서 참조바랍니다.
( hikariCP 사용시 spring.datasource.hikari.* tomcatCP 사용시 spring.datasource.tomcat.* 그리고 공통으로 적용되는 속성은 spring.datasource.* 에 설정하시면 됩니다. )