작성
·
53
0
Resilience4j - circuitbreaker를 보며 공부 중에 feign 에 Resilience4j의 cb나 bulkhead를 적용하게 되면 feignfallbackfactory 동작 시, throwable이 wrapping 되는 현상이 나타납니다.
(ex. ExecutionException) 예를 들어, 4xx대의 에러, 즉 FeignException.BadRequest에 대한 분기 처리를 하려면 fallbackfactory 에서 throwable에 대한 원본 cause 를 추출하는 방법 밖에는 없을까요? (ex, throwable.getcause().getcause())
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. Sehyeong An님.
Feign과 Resilience4j를 함께 사용했을 때 발생할 수 있는 문제, 즉 Throwable
객체가 여러번 wrapping 되는 현상에 대해 질문 주셨군요. 이 경우, fallbackFactory
내에서 Throwable
의 원본 cause
를 찾는 방법 외에 다른 대안이 있는지 궁금해 하셨습니다.
관련하여 유사한 사례와 해결 방법이 여러 강의 질문 게시판에 나와 있습니다. 이번 질문에서 언급하신 부분과 관련된 참고 자료를 아래와 같이 제공해 드립니다:
Resilience4J CircuitBreaker 관련 질문 - Resilience4j의 기본 세팅과 적용 방법에 대해 설명한 게시물입니다.
설정 정보가 다른 CircuitBreaker 사용하는 방법 - 다양한 CircuitBreaker 설정을 적용하고 관리하는 방법에 대한 답변을 확인할 수 있습니다.
resilience4j 라이브러리 오류문제 - Resilience4j 라이브러리와 관련된 가장 흔한 문제들에 대한 정보를 제공합니다.
Feign과 Resilience4j를 함께 사용할 때 Throwable
이 여러 번 래핑되는 상황이 종종 발생합니다. 이는 Resilience4j의 내부 구현 메커니즘 때문이며, 현재로서는 Throwable#getCause()
를 사용하여 원본 예외를 추출하는 방법이 가장 일반적입니다. 하지만 이러한 방식을 사용하면서도 코드의 가독성을 유지하기 위해 별도의 유틸리티 메서드를 작성하여 사용하실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.