티스토리 뷰
728x90
반응형
Fallback
- Fallback 클래스는 Feign Client의 메서드가 실패했을 때 호출되는 대체 로직을 구현
- Feign Client 인터페이스에 fallback 속성을 설정하여 Fallback 클래스를 연결
@FeignClient(name = "external-service", fallback = MyFallback.class)
public interface MyFeignClient {
@GetMapping("/api/resource")
String getResource();
}
@Component
public class MyFallback implements MyFeignClient {
@Override
public String getResource() {
// 실패 시 대체 로직을 여기에 구현
return "Fallback Response";
}
}
FallbackFactory
- Feign Client의 Fallback을 더욱 다양하게 구성하고 커스터마이징할 수 있게 해주는 팩토리 클래스
- Feign Client의 Fallback 클래스를 인스턴스화하고 구성하는 방식을 커스터마이징할 수 있음
- 문제가 발생된 Throwable cause에 접근 가능 (에러 출력)
- Feign Client 인터페이스에 fallbackFactory 속성을 설정하여 FallbackFactory를 연결
@FeignClient(name = "external-service", fallbackFactory = MyFeignClientFallbackFactory.class)
public interface MyFeignClient {
@GetMapping("/api/resource")
String getResource();
}
@Component
@Slf4j
public class MyFeignClientFallbackFactory implements FallbackFactory<MyFeignClient> {
@Override
public MyFeignClient create(Throwable cause) {
return new MyFeignClient(){
@Override
String getResource() {
log.error("occurred error.", cause);
return "Fallback Response";
}
};
}
}
728x90
반응형
'Spring' 카테고리의 다른 글
[Spring] Swagger CORS 이슈 (0) | 2023.11.09 |
---|---|
[Spring Boot] CircuitBreaker Resilience4j (0) | 2023.10.07 |
[Spring Boot] WireMock API 테스트 (0) | 2023.10.03 |
[Spring Boot] OpenFeign 로깅 설정 (0) | 2023.10.01 |
[Spring Boot] OpenFeign (0) | 2023.09.28 |
반응형
300x250