피드로 돌아가기
Dev.toDatabase
원문 읽기
HikariCP 기반 Connection Pool 최적화를 통한 DB 고갈 문제 해결
Fighting Database Connection Pool Exhaustion
AI 요약
Context
Microservices Architecture 내 다수 서비스의 DB Connection 경합으로 인한 성능 저하 및 시스템 다운타임 발생. 기본 설정의 DataSource 사용으로 인한 동시 요청 처리 한계와 SQLException 발생 가능성 상존.
Technical Solution
- HikariCP 도입을 통한 Connection Pool 생명주기 및 크기 제어
- MaximumPoolSize 설정을 통한 DB 서버 가용 자원 내 최대 연결 수 제한
- MinimumIdle 설정을 통한 최소 유휴 연결 유지로 요청 응답 속도 개선
- IdleTimeout 설정을 통한 불필요한 Connection의 적절한 회수 및 자원 낭비 방지
- Queue-based approach 적용을 통한 동시 DB 접근 요청 수 제어
- Circuit Breaker 패턴 도입으로 Connection 고갈 시 연쇄적 장애 전파 차단
실천 포인트
1. 기본 DataSource 대신 HikariCP와 같은 전문 풀링 라이브러리 적용 여부 확인
2. 서비스 트래픽에 기반한 MaximumPoolSize 및 MinimumIdle 수치 튜닝
3. Connection Timeout 발생 시 즉각적인 알람을 위한 모니터링 도구 구축
4. DB 연결 실패 시 서비스 전체 마비를 막기 위한 Circuit Breaker 적용 검토