less than 1 minute read

Communication Types

  • Rest Template, Fegin Client 같은것들이 존재한다.
  • Rest Template에서 Eureka Discovery Service에서 받았던 Order Service의 정보를 가지고 직접 호출 하게 된다.

  • http://127.0.0.1:8000/user-service/users/{userId} > REST TEMPLATE > http://127.0.0.1:8000/order-service/{userId}/orders
    • user-serivce에서 order-service를 Eureka Discovery Service에서 호출하게 된다.

Feign Client

  • REST Call을 추상화 한 Spring Cloud Netflix 라이브러리
  • 호출하려는 HTTP EndPoint 에 대한 인터페이스 생성
  • @FeignClient 선언
  • Load Balanced 지원

사용방법

  • openfeign 디펜던시 추가
    @SpringBootApplication
    @EnableDiscoveryClient
    @EnableFeignClients
    public class UserServiceApplication {}
    
  • 유레카에 등록되어진 마이크로 서비스인 order-service를 호출을 하게 될 것이다. 이 서비스가 가지는 다양한 URI중에서 order-service/{userId}/orders를 호출할것이다.
  • order-service : ORDER-SERVICE 의 application name
  • /order-service/{userId}/orders : 주문 확인을 위한 URI
@FeignClient(name = "order-service")
public interface OrderServiceClient {

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

Categories:

Updated: