티스토리 뷰
feign.RetryableException: Read timed out 에러는 FeignClient가 서버로부터 응답을 받기까지 일정 시간 이상 걸려서 타임아웃이 발생했음을 의미합니다.
✅ Feign의 기본 timeout 설정
Spring Cloud OpenFeign의 기본 타임아웃 값은 다음과 같습니다:
설정 기본값
connectTimeout | 10초 (10000ms) |
readTimeout | 60초 (60000ms) |
하지만 이 값은 환경 또는 라이브러리 버전에 따라 다를 수 있으니, 명시적으로 설정해주는 것이 좋습니다.
✅ Feign timeout 늘리기 (Spring Boot 기준)
application.yml 또는 application.properties에서 아래와 같이 설정할 수 있습니다.
📘 application.yml 예시:
feign:
client:
config:
default: # 또는 특정 client name
connectTimeout: 5000 # 5초
readTimeout: 120000 # 120초 (2분)
loggerLevel: full # (선택) 로깅 자세히 보기
📘 application.properties 예시:
feign.client.config.default.connectTimeout=5000
feign.client.config.default.readTimeout=120000
feign.client.config.default.loggerLevel=full
default 대신 특정 FeignClient 이름을 넣으면 그 client에만 적용됩니다.
✅ 추가: Retry 제거 (불필요한 재시도 방지)
Feign은 일부 예외에 대해 자동 재시도를 시도할 수 있습니다.
네트워크 타임아웃이 반복되면 재시도는 오히려 문제를 키울 수 있습니다.
feign:
client:
config:
default:
retryer:
# No retry (Retryer.NEVER_RETRY equivalent)
period: 0
maxPeriod: 0
maxAttempts: 1
또는 Java config에서 완전히 비활성화할 수도 있습니다:
@Bean
public Retryer neverRetry() {
return Retryer.NEVER_RETRY;
}
✅ 참고
- connectTimeout: 서버에 연결할 때까지 대기 시간 (예: 서버가 다운되었거나 연결이 느릴 때)
- readTimeout: 서버 응답을 기다리는 시간 (예: 처리 시간이 긴 API 호출 시)
--------
실제 적용.
feign:
client:
config:
flaskserver:
connectTimeout: 3000 # 3초
readTimeout: 1800000 # 30분
geoserver:
connectTimeout: 3000 # 3초
readTimeout: 10000 # 10초
@FeignClient(name = "flaskserver", url = "${flaskserver.base-url}")
public interface FlaskServerFeignClient {
// 침입수 분석
@GetMapping(value = "/runInfil")
FlaskServerResponse callInfiltration(@RequestParam("in_anls_sn") Integer inAnlsSn);
// RDII 분석
@GetMapping(value = "/runRdii")
FlaskServerResponse callRdii(@RequestParam("rain_in_anls_sn") Integer rainInAnlsSn);
}
'Skill > spring' 카테고리의 다른 글
FeignClient란 (3) | 2025.06.10 |
---|---|
Spring Webflux (0) | 2025.06.10 |
spring] 에러 메시지 반환 (1) | 2025.05.29 |
spring cloud 설정 (0) | 2025.05.29 |
JPA] 설정 (0) | 2025.05.29 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- setter
- draw.io
- element위치
- 정규식
- CSS
- @ExceptionHandler
- Javascript
- ul li로 테이블
- QueryDSL
- devtools
- oracle
- JQuery
- $.extend
- DatePicker
- 진열사랑
- PostgreSQL
- springboot
- lombok
- 여러 컬럼 update
- Keycode
- 전후방탐색
- getter
- $.each
- caniuse
- 프로젝트명변경
- object key
- spring
- sumifs
- border-collapse
- excel
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함