Resilience은 시스템이 예기치 않은 장애, 오류, 네트워크 문제 등의 상황에서 안정적으로 작동하거나 복구할 수 있는 능력이다.
Resilience design pattern 중 하나로 Fallback이 있다.
Fallback은 시스템에서 오류 상황이나 예외적인 상태를 처리하기 위해 준비된 대체 동작이다.
- 시스템의 안정성과 신뢰성을 보장하기 위해 자주 사용되며, 특히 마이크로 서비스 아키텍처나 분산 시스템에서 중요한 역할을 한다.
- 시스템 안정성 확보: 다른 서비스나 시스템으로 장애가 전파되지 않도록 방지한다.
- 사용자 경험 개선: 오류를 숨기고 사용자에게 유용한 대안을 제공한다.
Fallback은 다양한 시나리오에서 활용될 수 있다:
- 외부 API 호출 실패: 외부 시스템이 응답하지 않을 경우, 캐시 데이터나 기본 응답을 반환.
- 데이터베이스 연결 실패: 데이터베이스에 접근할 수 없을 때, 읽기 전용 캐시나 대체 데이터 소스를 사용.
- 네트워크 장애: 장애가 복구될 때까지 제한된 기능으로 서비스 제공.
이때, 대체 동작을 적절하게 설정해야 한다.
적절하지 못한 대체 동작은 사용자 경험이 떨어지고, 장애를 확신시킬 수 있다.
Spring Cloud에서는 Hystrix, Resilience4j 같은 라이브러리를 사용하면 구현할 수 있다.
출처 : 다음의 글을 참고하였습니다.
'💻 개발 > Back-end' 카테고리의 다른 글
12/12 - TIL : 로깅 레벨 (1) | 2024.12.12 |
---|---|
12/9 - TIL : DDD 란? (0) | 2024.12.09 |
12/1 - TIL : 모듈이란? (0) | 2024.12.01 |
11/28 - TIL : 이벤트 소싱과 CQRS (0) | 2024.11.28 |
11/26 - TIL : 분산 트랜잭션과 CQRS (0) | 2024.11.26 |