본문 바로가기

Feign Client 

Feign Client는 Netflix에서 개발한 http client이다. Feign Client는 http client를 인터페이스를  통해 선언하는 방식으로 코드를 작성하기 때문에 유지보수하기가 좋다.  Feign Client를 사용하는 방법은 아래 좋은 글이 많이 있으니 참고하면 된다.

 

 

(Spring Cloud) Feign

Feign REST 기반 서비스 호출을 추상화한 Spring Cloud Netflix 라이브러리 선언적 방식 인터페이스를 통해 클라이언트 측 프로그램 작성 Spring이 런타임에 구현체를 제공

supawer0728.github.io

 

우아한 feign 적용기 - 우아한형제들 기술 블로그

안녕하세요. 저는 비즈인프라개발팀에서 개발하고 있는 고정섭입니다.이 글에서는 배달의민족 광고시스템 백엔드에서 feign 을 적용하면서 겪었던 것들에 대해서 공유 하고자 합니다.

woowabros.github.io

 

feign 좀더 나아가기 - 우아한형제들 기술 블로그

안녕하세요. 저는 상품시스템팀에서 개발하고 있는 고정섭입니다.이 글에서는 배달의민족 광고시스템 백엔드에서 feign 을 적용하면서 겪었던 것들에 대해서 공유 하고자 합니다.이 글은 이전에

woowabros.github.io

 

이 글에서는 Feign Client를 사용하는 과정에서 발생한 에러를 해결하는 과정을 간단하게 정리했다.

 

Feign Client를 이용해서 api서버를 호출하는 과정에서 계속해서 http staus 411에러가 발생했다. POST요청이지만 body가 비어있고 쿼리스트링으로 id값을 전달하는 요청인데 content-length를 0으로 맞춰도 같은 에러가 반복해서 발생해서 open feign github의 issue를 한번 찾아봤다.  (411에러를 해결하는 방법은 body에 빈 값을 넣어서 보내거나 Content-Length : 0을 헤더에 세팅해주면 해결)

 

답변을 보니 httpclient나 okhttp를 사용하라고 한다. feign clinet에 default http client가 있는데 content length 헤더 관련 세팅이 디폴드로 되어 있지 않아서 발생하는 문제인것 같다.

 

 

 

Getting 411 Length Required Error · Issue #1251 · OpenFeign/feign

I am trying to have a post call with token and hitting to the end URL, I am receiving 411 Length Required error. Even after creating the Interceptor and adding Content-Length: 0 to it, still I am r...

github.com

 

httpclient의존성을 추가시키고 다시 테스트 해보자

 

compile "io.github.openfeign:feign-httpclient:9.2.0"

 

9.2.0 버전을 사용하니 `original request is required`라는 에러가 발생한다. feign client와 httpclient의 버전이 맞지 않아서 발생하는 에러인것 같다. 10.2.0으로 맞추니까 정상적으로 응답이 온다.

 

 

Spring Cloud Feign + Sleuth + Zipkin - original request is required

I have multiservices application which is using Spring Cloud OpenFeign. Now I have to use zipkin with that app. I remember that when i had app without Feign I just added Sleuth and Zipkin starters

stackoverflow.com

 

 

	compile "org.springframework.cloud:spring-cloud-starter-openfeign:2.2.5.RELEASE"
	compile "io.github.openfeign:feign-httpclient:10.2.0"

댓글