FeignClient

CHEESE·2022년 10월 3일
0

Spring Cloud + MSA

목록 보기
13/13
post-thumbnail

FeignClient

  • REST Call을 추상화한 Spring Cloud Netflix 라이브러리
  • Rest Template보다 직관적이고 간단하다

구현 방법

  • Spring Cloud Netflix 라이브러리(의존성) 추가
  • @FeignClient 어노테이션이 붙은 HTTP Endpoint에 대한 인터페이스를 생성
@FeignClient(name = "마이크로서비스 이름")
// 여기에서 마이크로서비스 이름은 discovery(ex: eureka)에 등록된 이름을 의미한다.

로깅

아래 설정만으로 feignClient가 호출되었을 때 다양한 로그를 확인할 수 있다.

application.yml

logging:
	level:
    	com.example.userservice.client: DEBUG

Application.java(@SpringBootApplication)

@Bean
public Logger.Level feignLoggerLevel(){
	return Logger.Level.FULL;
}

예외 처리

FeignClient를 호출하는 문장을 try-catch로 감싼다.

try{
	List<Response> responses = serviceClient.getResponses(param);
}catch(FeignException e){
	log.error(e.getMessage());
}

통신에 문제가 생겼을 때 전체 로직에 문제가 생기는 것이 아니라 그 부분만 제외하고 처리하기 때문에 이외 로직은 정상적으로 수행할 수 있다.

0개의 댓글