louie.log
로그인
louie.log
로그인
동시 요청 처리, 멀티 스레드, 스레드 풀
Louie
·
2023년 1월 1일
팔로우
0
WAS
스레드
0
동시 요청 처리 방법, 문제점
멀티 스레드를 사용하여 동시 요청 처리를 지원할 수 있다.
간단하게 요청마다 스레드를 생성하면 동시에 여러 요청을 처리할 수 있다.
하지만 스레드의 생성 비용은 매우 비싸고 요청이 많이 들어온다면 서버 자원이 부족해서 스레드를 계속 생성하다가 서버가 죽을 수 있다.
이러한 문제를 해결하기 위해 스레드 풀을 사용한다.
스레드 풀
WAS는 스레드 풀을 사용하여 동시 요청 처리를 지원한다.
스레드 풀에 미리 스레드를 생성해놓고 요청마다 스레드 풀에 남아있는 스레드를 할당해 준다.
요청이 완료되면 해당 스레드를 종료시키지 않고 다른 요청이 들어왔을 때 스레드 풀에서 다시 클라이언트에게 할당하는 방식으로 재활용한다.
스레드 풀에 남은 스레드가 존재하지 않으면 대기 중인 요청을 거절하거나 설정한 개수만큼 대기하도록 설정할 수 있다.
스레드 풀의 장점
이렇게 스레드 풀을 사용하면 스레드를 계속 재활용하기 때문에 스레드를 삭제하고 다시 생성할 때 드는 비용을 아낄 수 있어서 응답 시간이 빨라진다.
그리고 스레드 생성 개수를 설정할 수 있으므로 많은 요청이 들어와도 기존 요청을 안전하게 처리할 수 있다.
스레드 풀의 적정 개수
환경에 따라 다르므로 성능 테스트를 통해 적정 개수를 구해야 한다.
Louie
백엔드 개발자를 준비하고 있는 Louie입니다.
팔로우
이전 포스트
CORS란?
다음 포스트
인터프리터, JIT 컴파일러
0개의 댓글
댓글 작성