외부 서비스 장애로 인해 응답이 오래걸림 > 외부 API응갑으로 대기하는 자원이 많아짐 > 운영 서버 내부에 쌓이면서 성능저하
가장 기본적인 해결방법 : 타임아웃 설정!!
> 타임아웃 종류 : 커넥션 타임아웃 / 리드 타임아웃 / HTTP 커넥션 풀 타임아웃
커넥션 타임아웃
TCP 3-way handshake를 통해 TCP연결으로 생성된 연결에 소요되는 최대 시간을 의미
리드 타임아웃
연결에서 데이터를 주고받을때 소요되는 최대 시간을 의미
Rest API의 경우, TCP통신과정에서 각각의 타임아웃이 적용되는 구간은 아래와 같다.
3-way handshake의 SYN, SYN+ACK, ACK == 커넥션 타임아웃
GET/ 요청, 200OK 응답 등 == 리드 타임아웃
추가)
?? 벌크헤드 패턴??
Bulkhead(격벽) : 선박의 공간을 여러 구획으로 나누기 위해 사용되는 벽이다. 격벽으로 구획을 나누면, 어느 한 곳에 물이 차더라도 다른 구획은 영향을 전혀 받지 않는다.
> 벌크헤드 패턴은, 리소스를 격리하여, 일부 컴포넌트에 문제가 발생하더라도, 그것이 시스템 전체로의 장애에 전파되지 않게끔 만들어주는 패턴이다.
즉, 리소스 격리를 통한 장애 격리이다.
리소스는 쓰레드풀, 커넥션풀등 다양하다.
+ 리소스풀을 물리적으로 분리하지 않고, 세마포어등 상호배제 매커니즘을 통해 구현 가능하다
??서킷 브레이커??
오류가 지속되는 경우, 일정 시간동안 기능 실행을 차단할 수 있는 기능
빠른 실패를 확인할 수 있기에 외부 서비스 장애에 대한 응답 시간 증가를 예방
'cs(with 매일메일)' 카테고리의 다른 글
| [251016목] 데이터베이스 시스템에서 동시성을 제어하는 방법에 대해 설명해주세요. (0) | 2025.10.16 |
|---|---|
| [251015수] HTTP 메서드에서 멱등성이란 무엇인가요? (0) | 2025.10.15 |
| [251002목] @Component, @Controller, @Service, @Repository의 차이점에 대해서 설명해주세요 (0) | 2025.10.14 |
| [251001수] 동일성과 동등성에 대해서 설명해주세요 (0) | 2025.10.14 |
| [251014화] 사용자가 웹사이트에 처음 접근했을 때 발생하는 일련의 과정에 대해 설명해 주세요. (0) | 2025.10.14 |