본문 바로가기
MSA

FeignClient

by 혀눅짱 2023. 9. 4.

마이크로서비스간의 통신을 함에있어서  RestTemplate을 대신해 가독성이 더좋은 방법인 FeignClient를 알아본다.

 

먼저 호출하는 곳(유저서비스)에 디펜던시를 추가한다.

 

<!--Feign Client-->
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

그후 메인클래스에 어노테이션을 추가해준다.

@EnableFeignClients

 

인터페이스를 통해 다른 api를 호출하도록한다.

@FeignClient에서 name 속성은 유레카서버에 등록된 애플리케이션 이름을 뜻한다.

그후 order-service의ㅣ 매핑 url을 세팅후 호출하도록한다.

@FeignClient(name = "order-service")
public interface OrderServiceClient {

    @GetMapping("/order-service/{userId}/orders")
    List<ResponseOrder> getOrders(@PathVariable String userId);
}
List<ResponseOrder> orders = orderServiceClient.getOrders(userId);
userDto.setOrders(orders);


return userDto;

해당결과는 RestTemplate과 동일하다. 하지만 코드가독성이나 사용방법에서 조금더 익숙하고 편리하다.

'MSA' 카테고리의 다른 글

Zipkin 활용  (0) 2023.09.12
CircuitBreaker,Resilience4J 구현  (0) 2023.09.12
RestTemplate  (0) 2023.09.04
RabbitMQ  (0) 2023.09.04
Config service  (0) 2023.09.04