728x90
HikariCP란?
빠르고 간단하며 안정적입니다. HikariCP는 "zero-overhead"프로덕션 준비 JDBC 연결 풀입니다. 약 130Kb에서 라이브러리는 매우 가볍습니다.
JMH 벤치 마크
Microbenchmarks는 JMH microbenchmark 프레임 워크를 사용하여 풀의 오버 헤드를 분리하고 측정하기 위해 만들어졌습니다. HikariCP 벤치 마크 프로젝트에서 HikariCP 성능을 확인할 수 있습니다.
- 하나의 연결 주기는 DataSource.getConnection()/ Connection.close()로 정의됩니다.
- 하나의 Statement 주기는 Connection.prepareStatement(), Statement.execute(), Statement.close()로 정의됩니다.
Configuration
설명
- HikariCP는 추가 조정 없이 대부분의 배포에서 잘 수행되는 정상적인 기본값과 함께 제공됩니다. "필수 사항"을 제외하고 모든 속성은 선택 사항입니다.
- HikariCP는 모든 시간 값에 밀리 초를 사용합니다.
- HIkariCP는 성능과 안정성 모두를 위해 정확한 타이머에 의존합니다. 필수적 서버는 NTP 서버로 시간 소스와 동기화됩니다. 특히 서버가 가상 머신 내에서 실행이 되는데 여기에서 확인할 수 있습니다. 가상 머신 시계를 "동기화" 하기 위해 하이퍼 바이저 설정에 의존하면 안 됩니다.
속성
필수 속성
- dataSourceClassName : DataSource JDBC 드라이버에서 제공하는 클래스의 이름
- JdbcUrl : ex) "jdbc:mysql://localhost:3306/sample"
- username : 기본 드라이버에서 connection을 가져올 때 사용되는 기본 인증 사용자 이름
- password : 기본 인증 암호
자주 사용되는 속성
- autoCommit : Pool에서 반환된 연결의 기본 자동 커밋 동작을 제어 (Default = True)
- connectionTimeout : 클라이언트가 Pool에서 연결을 기다리는 최대 시간을 제어, 연결 시간 초과 시 SQLException이 발생 (최소: 250ms, Default : 30000 (30초))
- idleTimeout : 연결이 Pool에서 유휴 상태로 유지될 수 있는 최대 시간을 제어
- maxLifetime : Pool 연결 최대 수명 제어, close시에만 pool 제거
- connectionTestQuery : 드라이버가 JDBC4를 지원하는 경우 이 속성을 설정하지 않은 것이 좋다. 이것은 데이터베이스에 대한 연결이 여전히 활성 상태인지 확인하기 위해 풀에서 연결이 제공되기 직전에 실행되는 쿼리입니다
- minimumIdle : HikariCP가 Pool에서 유지하려고 시도하는 최소 유휴 연결수를 제어, 유휴 연결이 값 아래로 떨어지고 Pool의 총 연결수 미만이면 maximumPoolSize HikariCP는 추가 연결을 빠르고 효율적으로 추가하기 위해 운영됩니다.
- maximumPoolSize : 유휴 및 사용 중인 연결을 모두 포함하여 pool이 도달할 수 있는 최대 크기를 제어
- (기본 내용을 작성하였고 추가 적인 속성은 여기에서 확인하면 된다. )......
참조
[Hikaricp Open Source] : https://github.com/brettwooldridge/HikariCP
728x90
'BackEnd > Spring Boot' 카테고리의 다른 글
Token JJWT (0) | 2023.04.15 |
---|---|
json-simple 사용 (0) | 2023.04.15 |
JDBC란? (0) | 2023.04.15 |
Spring Boot 서버 구축[2] (0) | 2023.04.15 |
Spring Boot 서버 구축[1] (0) | 2023.04.15 |