Application Modernization/Service Mesh

OpenFeign 이란?

Cloud Applicaiton Architect 2021. 9. 1. 08:15
반응형

이 글은 2020년 본인 소유 네이버 블로그에 포스팅한 글을 가져와 재 포스팅한 내용입니다.

지금은 중국 알리바바로 옮겼지만 한때 Pivotal China에서 일했었고 나와는 5개월 정도 함께 일했었던 '리 강'이라는 중국인이 개발한 Spring Cloud의 RESTful 통신용 라이브러리입니다.

OpenFeign은 Spring Cloud에서 RestTemplate과 Hystrix 라이브러리를 통합한 기능으로 생각할 수 있습니다.

  • Hystrix가 RestTemplate과 함께쓰여 설정된 임계치에 조건이 다달아 장애가 발생하면 FallBack 메소드가 작동하게 하는 방식과 동일한 방식으로 동작 할 수 있습니다.
  • 보통 OpenFeign은 Connection Timeout과 Read Timeout 조건에서 동작하는데 그 외 Hystrix라이브러와 통합되어 보다 복잡한 Fallback 조건을 설정 할 수 있습니다.

한마디로 OpenFeign을 이용하면 Spring의 RestTemplate과 Histrix를 손쉽게 대체 할 수 있다는 의미입니다.

OpenFeign 소개

1. REST Call을 위해 호출하는 클라이언트를 보다 쉽게 작성할 수 있도록 도와주는 라이브러리

2. OpenFeign은 동일한 기능을 하는 RestTemplate 대비 interface를 작성하고 annotation을 붙여주면 세부적인 내용 없이 사용할 수 있기 편리한 기능 제공

3. Timeout 같은 간단한 기능은 Hystrix 연동없이 실패에 대한 Callback 함수 구현 가능

4. spring-cloud-starter-openfeign 라이브러리 추가로 손쉽게 사용 가능

OpenFiegn 적용

1. OpenFeign Library Dependency 추가 :

compile('org.springframework.cloud:spring-cloud-starter-openfeign’)

2. ApplicationMain에 @EnableFeignClients 추가

3. REST call을 할 REST API에 대한 FeignClient Interface 작성

4. Interface call 실패에 대한 대안(fallback) 작성

5. application.properties(yml)에 Feign속성 추가

반응형

'Application Modernization > Service Mesh' 카테고리의 다른 글

istio와 envoy 란  (0) 2021.09.05
OpenFeign 간단 예제  (0) 2021.09.01
Eureka : Service Discovery  (0) 2021.08.31
Ribbon : Load Balancer  (0) 2021.08.31
Hystrix : Circuit Breaker  (0) 2021.08.31