DBCP(DB connection pool)의 개념과 설정 방법
DBCP란?
- 백엔드 서버와 DB서버에서 데이터를 송수신할 때 매번 connection을 열고 닫는 비용이 발생하여 서비스 성능에 좋지 않다. 이러한 문제를 해결하는 것이 DBCP
- DBCP란 데이터베이스와의 연결을 관리하기 위한 커넥션 풀 라이브러리
- Connection을 미리 만들어 놓고 Connection Pool에 저장하여 커넥션이 필요할 때마다 Pool에서 가져와 연결
- get connection : 쿼리를 요청하기 전 커넥션 풀에서 커넥션 객체를 가져옴
- close connection : 요청 처리가 끝나면 커넥션을 커넥션 풀로 반납
DBCP 설정 방법
- DB Connection은 backend server와 DB서버 사이의 연결을 의미하기 때문에 backend server와 DB서버 각각에서의 설정(configuration)방법을 알고 있어야 함
DB 서버 설정
- max_connections : client와 맺을 수 있는 최대 connection 수
- wait_timeout : connection이 inactive할 때 다시 요청이 오기까지 얼마의 시간을 기다린 뒤에 close할 것인지 결정
DBCP 설정
- minimumIdle : poll에서 유지하는 최소한의 idle connection 수
- maximumPoolSize : pool이 가질 수 있는 최대 connection 수
- maxLifetime : pool에서 connection의 수명 - connectionTimeout : pool에서 connection을 받기 위한 대기 시간
- 권장 사항 : minimumIdle과 maximumPoolSize동일하게 두는 것 권장, pool size를 넉넉하게 잡아놓으면 대규모 트래픽에 대처 가능