Application Modernization/Service Mesh

OpenFeign 간단 예제

Cloud Applicaiton Architect 2021. 9. 1. 09:04
반응형

이 포스팅은 2020년 본인 소유의 네이버 블로그에 올린 글을 재 포스팅하는 글 입니다.

OpenFeign Demo

이번 예제는 OpenFeign을 이용해 간단한 호출을 해보는 예제입니다.

  • OpenFeign에 대한 개념이 필요하신 경우 아래를 참조합니다.
 

OpenFeign 이란?

이 글은 2020년 본인 소유 네이버 블로그에 포스팅한 글을 가져와 재 포스팅한 내용입니다. 지금은 중국 알리바바로 옮겼지만 한때 Pivotal China에서 일했었고 나와는 5개월 정도 함께 일했었던 '리

sharplee7.tistory.com

 

예제에 사용될 프로젝트 구조는 아래와 같습니다.

openfeign-demo 프로젝트 구성

 

OpenFeign Demo 시나리오

 

openfeign-demo 시나리오

 

  • 8081로 기동되는 Caller서비스와 8082로 기동되는 Callee서비스가 있습니다.
  • Caller에는 /greet/라는 RESTful API가 있습니다.
  • Caller의 /greet/ 호출 시 Greeting이라는 name과 message를 속성을 가진 json을 이용합니다.

  • Caller의 /greet/ 리턴 값은 Courtesy라는 name과 message를 속성으로 가지는 JSON입니다.
  • Caller의 Courtesy는 CalleeFeignClient라는 OpenFeign을 이용해 Callee로부터 받아 옵니다.

  • Caller의 FeignClient는 connectionTimout과 readTimeout을 설정해 fallback처리 할 수 있습니다.

  • fallback처리는 FallBackFactory클래스를 구현해 처리합니다.

  • Callee는 courtesy라는 RESTful API를 가지고 있습니다.
  • Callee의 courtesy는 name과 message를 가지는 Greeting JSON 객체를 받아 그에 대한 화답으로 보내는

JSON객체 입니다.

  • Caller와 Callee는 Swagger를 통해 테스트를 진행 합니다.
  • Swagger 및 domain(Greeting과 Courtesy)클래스들은 common-lib라는 별도의 프로젝트로 관리 됩니다.

테스트

  • openfeign-demo 프로젝트를 사용하시는 IDE에 gradle project로 import한 후 build 합니다.
  • CallerApplicaitonMain과 CalleeApplicationMain을 각각 실행시킵니다.
  • 브라우저를 통해 Caller 서비스에 접속 합니다. (http://localhost:8081/swagger-ui.html)

  •  /greet/ RESTful API를 클릭 후 name을 입력 후 tryout을 클릭합니다.

  • Caller의 greet을 통해 Callee의 courtesy가 호출 되 것을 확인합니다.

 

이 프로그램의 소스는 다음의 git에서 확인 할 수 있습니다.

 

GitHub - sharplee7/openfeign-demo

Contribute to sharplee7/openfeign-demo development by creating an account on GitHub.

github.com

 

끝~

반응형

'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