일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- JPA
- Connection Pool
- 이펙티브 자바
- NotBlank
- Service Locator
- FCM
- Service Locator 패턴
- SQL 삽입 공격
- db
- @MockBean
- Effetive Java
- 데이터베이스
- @ControllerAdvice
- springboot
- Proxy Patter
- @Valid
- NotEmpty
- 디자인 패턴
- 트랜잭션
- deleteById
- Firebase
- Web
- java
- Spring Boot
- multi module
- 플라이웨이트
- restTemplate
- Item04
- Effective Java
- @SpyBean
- Today
- Total
목록Connection Pool (2)
NoTimeForDawdling
서버는 동시에 사용할 수 있는 사람의 수라는 개념이 존재합니다. 만약에 동시 접속자 수를 초과하게 될 경우 어떻게 될까요? 동시 접속자 수를 초과하게 된다면 에러(예외)가 발생할 겁니다. 예외가 발생하면 그 접속자는 더 이상 처리를 하지 못하므로, 사이트 이용자는 다시 접속을 해야 하는 불편함이 있습니다. 이를 해결하기 위해 탄생한 것이 Connection Pool입니다. Connection Pool이란? Connection Pool이란 동시 접속자가 가질 수 있는 Connection을 하나로 모아놓고 관리한다는 개념입니다. 누군가 접속하면 자신이 관리하는 Pool에 남아있는 Connection을 제공합니다. 하지만 남아있는 Connection이 없는 경우라면 해당 클라이언트는 대기 상태로 전환시킵니다...
오늘은 Spring Boot에서 RestTemplate Connection Pool을 설정하는 방법에 대해 알아보겠습니다. RestTemplate은 기본적으로 Connection Pool을 직접적으로 지원하지 않기 때문에 매번 RestTemplate를 호출할 때마다, 로컬에서 임시 TCP 소켓을 개방하여 사용합니다. 이렇게 사용된 TCP 소켓은 TIME_WAIT 상태가 되는데, 요청량이 엄청나게 많아진다면 이러한 소켓들은 재사용될 수 없기 때문에 응답이 지연될 수밖에 없습니다. 하지만 RestTemplate의 내부 구성에 의해 Connection Pool을 설정할 수 있습니다. RestTemplate에서 내부적으로 사용되는 HttpClient를 이용하면 됩니다. RestTemplate.class /** ..