skarltjr / Memory_Write_Record

나의 모든 학습 기록
0 stars 0 forks source link

데이터베이스 커넥션 풀 #106

Open skarltjr opened 2 years ago

skarltjr commented 2 years ago

커넥션 풀이란

was가 실행되면서 미리 DB와 연결 해놓은 객체들을 pool에 저장해두었다가
클라이언트 요청이 오면 connection을 빌려주고 처리가 끝나면 이를 반환받아 pool에 다시 저장하는 방식

커넥션 풀 사용 이유

매번 연결 객체를 생성하게되는 경우 비효율적
마치 spring mvc에서 스레드풀을통해 미리 스레드를 만들어두었다가 대응할 수 있도록..

커넥션풀의 특징

1. was가 실행될 때 connection 객체를 미리 생성하고 pool에 저장해둔다
2. 요청에따라 pool에서 connection객체를 가져다 쓰고 반환한다.
3. 이를 통해 데이터베이스 connection부하를 줄일 수 있다.
4. pool에 미리 connection객체를 생성해둠으로써 매 요청마다 생성하지 않고 있는걸 전달함으로써 적은 시간소요

대량의 요청이 발생하는경우

커넥션풀에 생성된 connection객체가 모두 할당이되고 남은게 없다면
사용자는 connection객체가 반환될 때까지 대기

그러면 커넥션풀을 크게 설정하면되지 않느냐?
그만큼 많은 메모리 소모

그러나 커넥션풀을 작게 설정하면 그만큼 대량 요청시 대기시간 증가