๐Ÿ”ฎSpring

[Spring Boot Gradle] Hikari CP MAX Connection Pool ์„ค์ •ํ•˜๊ธฐ

harry.93 2021. 7. 24. 05:04
๋ฐ˜์‘ํ˜•

๊ธฐ์กด DataSource ๊ฐ€ Hikari CP ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉ ์ค‘, Max Connection Pool ์„ค์ •์ด ํ•„์š”ํ•˜๊ฒŒ ๋˜์–ด ์„ค์ • ์‹œ๋„๋ฅผ ํ•จ.

try#1 - ์„ค์ •๋งŒ ์ถ”๊ฐ€

application.yml 

datasource:
    url: jdbc:log4jdbc:url
    driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
    username: username
    password: password
    # DB Connection Pool for local
    hikari:
      connectionTimeout : 30000
      maximumPoolSize : 2
      #maxLifetime : 1800000
      #poolName : HikariCP
      #readOnly : false
      #connectionTestQuery : SELECT 1

DataSource Bean ๋”ฐ๋กœ ์กด์žฌํ•˜์ง€ ์•Š์Œ.

>> ํ•ด๋‹น ์„ค์ •์ด ๋™์ž‘ํ•˜์ง€ ์•Š์Œ. 

Why ? 

>> DataSource ์ƒ์„ฑ ์‹œ, ๋”ฐ๋กœ ๋ช…์‹œํ•˜์ง€ ์•Š์•„ ๊ธฐ๋ณธ์ ์ธ ์„ค์ •๋งŒ ๊ฐ€์ ธ๊ฐ€๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋Š” spring.datasrouce ์˜ url,driver-class-name,username,password ๋งŒ ๊ฐ€์ ธ๊ฐ€๊ณ  maximumPoolSize ์˜ ๊ฒฝ์šฐ spring.datasource.hikari ๋ฐ‘์œผ๋กœ ๋“ค์–ด๊ฐ€๋ฏ€๋กœ ์ธ์‹ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

try#2 - ์„ค์ • ์ถ”๊ฐ€ ํ›„, ds Bean ๋“ฑ๋ก.

application.yml

datasource:
   hikari:
    jdbc-url: jdbc:log4jdbc:url
    driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
    username: username
    password: password
    maximumPoolSize : 2

dbConfig.java

@Bean(name = "dataSource")
  @ConfigurationProperties(prefix = "spring.datasource.hikari")
  public DataSource dataSource() {
    HikariDataSource ds = (HikariDataSource) DataSourceBuilder.create().build();
    return ds;
  }

@ConfigurationProperties ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด, ํ”„๋กœํผํ‹ฐ์˜ spring.datasource.hikari ๋ฐ‘์˜ ์„ค์ •์„ ์ฐธ์กฐํ•˜๋„๋ก ๋ณ€๊ฒฝ.

>> ํ•ด๋‹น ์„ค์ •์ด ๋™์ž‘ํ•˜์ง€ ์•Š์Œ.

Why ? 

>> DataSource ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์—์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด๋„, ์บ์ŠคํŒ… ํ•˜์ง€ ์•Š์€ HikariDataSource ์ด๊ธฐ ๋•Œ๋ฌธ์— ์„ค์ •์ด ์‚ฌ์šฉ๋œ ds ์—ฌ๋„ ์‹ค์ œ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์—์„œ๋Š” ํ•ด๋‹น ds ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

try#3 - Hikari ์„ค์ •์„ ๋นˆ์— ๋“ฑ๋ก ํ›„, ๋ฒ ์ด์Šค Ds์—์„œ ํ•ด๋‹น ์„ค์ • ๊ฐ€์ ธ์™€ DataSource๋กœ ์บ์ŠคํŒ…ํ•˜์—ฌ ์‚ฌ์šฉ.

์ฐธ๊ณ  : https://dotheright.tistory.com/188

 

7. Spring boot Oracle DB์—ฐ๋™(Thymeleaf, Hikari CP ํ™œ์šฉ)

์†Œ์Šค์ฝ”๋“œ : https://github.com/ 1. ๊ธฐ์ดˆ ์„ค์ • ๋ฐ ์ˆœ์„œ 2. pom.xml 3. application.yml 4. config 5. mapper 6. view & controller 1. ๊ธฐ์ดˆ ์„ค์ • ๋ฐ ์ˆœ์„œ 0. ๋ชฉํ‘œ > Thymeleaf์™€ Hikari CP๋ฅผ ํ™œ์šฉํ•œ Spring boot..

dotheright.tistory.com

dbConfig.java

/**
   * hikari cp config ๋ช…์‹œ conf prop -> application.yml
   */
  @Bean
  @ConfigurationProperties("spring.datasource.hikari")
  public HikariConfig hikariConfig() {
    return new HikariConfig();
  }

  /**
   * mybatis์— hikari cp ๋“ฑ๋ก
   */
  @Bean
  public DataSource dataSource() {
    DataSource dataSource = new HikariDataSource(hikariConfig());
    return dataSource;
  }

>> ์•„์ง ํ•ด๋‹น ์‚ฌํ•ญ์€ ์‹ค์ œ ํ™•์ธํ•ด๋ณด์ง„ ์•Š์Œ, ํ™•์ธ ํ›„ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ์—…๋ฐ์ดํŠธ ์˜ˆ์ •

 

>> ์‹ค์ œ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ!

728x90
๋ฐ˜์‘ํ˜•