소개

Resilience4j (TBU)

분야
발표자
타임 아웃
HTTP 커넥션 풀 사용시 추가 타임 아웃 설정
풀에서 커넥션 구할 때 대기하는 최대 시간
보통 1초~5초 이내로 설정
외부 연동 서비스가 많을 때
특정 서비스 장애 → 전체 영향
A, B, C 연동에 대해 커넥션 풀을 공유할 때
A 서비스의 장애로 응답 시간 지연이 발생하면 → 풀에 남은 유휴 커넥션이 줄어듦 → 풀에서 커넥션을 구하는 대기 시간이 증가 → B, C 서비스에 대한 연동도 같이 대기하게 됨
벌크헤드
개념
기능/서비스/클라이언트 마다 자원 사용 분리
한 기능/서비스 장애가 다른 기능/서비스에 주는 영향 최소화
서비스에 적용 / 예) 외부 서비스마다 별도 커넥션풀 사용
트래픽 규모에 따라 다른 커넥션 풀 설정
A 서비스와 연동이 느려져도 B, C 서비스 연동은 영향 감소
외부 시스템 장애 지속
계속되는 타임아웃/50x 응답에 따른 서비스 에러
외부 서비스가 비정상임에도 계속해서 요청을 보냄
응답 시간 느려짐, 처리량 감소
서킷브레이커를 적용하면 응답 시간 일정하게 유지
서킷 브레이커
오류 지속시 일정 시간동안 기능 실행을 차단함
기능을 실행하지 않고 바로 에러 응답(fault fast, fail fast)
→ 빠른 실패: 외부 서비스 장애에 따른 응답 시간 증가 감소
서킷 브레이커 동작 방식
정리
연동 시스템 장애시 영향을 줄이는 세 가지 방법
타임 아웃
벌크헤드
서킷브레이커
장애 전파 차단