쩨이엠 개발 블로그

[Spring boot 3] Feign Client Timeout 설정 본문

개발/Spring

[Spring boot 3] Feign Client Timeout 설정

쩨이엠 2024. 3. 7. 15:59
728x90
반응형

 

현상

API를 호출하는데 기본 1분이 넘게 걸려 계속 ReadTimeout Exception이 발생한다

Response 주는 서버쪽에서 앞으로도 그럴거라고(!) Timeout 설정을 늘리라고 했다

늘려본다

 

사용버전

Java v17.0.7

Springboot v3.0.6

OpenFeign v4.0.3

 

 

해결

구글링을 해보니 spring boot에서 openfeign 관련 설정을 밑과 같이 설정하면 Timeout이 먹힌다고 했다

application.yml

feign:
  client:
    config:
      ${FeignClient의 name 혹은 value}:
        connectTimeout: 시간
        readTimeout: 시간

 

 

현재 spring boot 3을 쓰고 있는데, 이 버전에서는 connectTimeout을 찾을 수 없다고 나온다.

일단 시작부터 feign이 아니다.

 

당황스럽다

feign을 쳐본다

 

많은 feign 설정이 spring.cloud.openfeign으로 나온다

마침 timeout이 있다

 

 

readTimeout이 있다

설정

 

spring:
  cloud:
    openfeign:
      httpclient:
        ok-http:
          read-timeout: 18000

 

다시 돌려보면 성공!

이라는게 있었으면 이 글을 쓰지 않았을 것이다

 

되지 않는다....

default 값인 1분에서 냅다 ReadTimeout을 떨군다

 

그래서 다시 뒤져보니 FeignConfig값을 설정 할 수 있는게 한 가지가 더 있었다

바로 spring.cloud.openfeign.client.config!

 

Feign Client의 name(혹은 value, 둘의 값은 같아야함)을 적어주고 그 밑에 readTimeout을 넣어주면

setConfig로 들어가는 것을 확인할 수 있다!

spring:
  cloud:
    openfeign:
      client:
        config:
          push:
            readTimeout: 180000

 

그리고 밀리세컨드니 x1000 꼭 해줄 것

 

확인 !

728x90
반응형
Comments