spring cloud gateway mvc 모델에서 route별 timeout 설정
324
작성한 질문수 3
안녕하세요 선생님. 질문이 있어 남깁니다.
spring cloud gateway mvc모델에서 route별 httpclient의 readtimeout, connectiontimeout을 설정하는 방법이 있나요?
reactive한 모델에서는 metadata를 이용하여 설정하는 것 같은데, documents를 아무리 뒤져도 mvc모델에서 전역적으로 타임아웃 설정하는 법만 있고, route별 설정하는 법이 없네요..
어떻게 설정해야할까요?
답변 1
0
안녕하세요, 이도원입니다.
spring cloud gateway 전체에 대한 response-timeout 또는 conenct-timeout 설정 이외에 Route별로 설정을 하실려면 아래와 같은 방법이 가능할 것 같습니다.
spring:
cloud:
gateway:
routes:
- id: user-service
uri: http://user-service:8080
filters:
- name: CustomTimeoutFilter
args:
timeout: 3000 # Timeout in milliseconds@Component
public class CustomTimeoutFilter extends AbstractGatewayFilterFactory<CustomTimeoutFilter.Config> {
public CustomTimeoutFilter() {
super(Config.class);
}
@Override
public GatewayFilter apply(Config config) {
return (exchange, chain) -> {
// Start the chain and enforce timeout
return chain.filter(exchange)
.timeout(Duration.ofMillis(config.getTimeout()))
.onErrorResume(throwable -> {
// Handle timeout errors
exchange.getResponse().setStatusCode(HttpStatus.GATEWAY_TIMEOUT);
DataBufferUtils.release(exchange.getResponse().bufferFactory().allocateBuffer());
return exchange.getResponse().setComplete();
});
};
}
public static class Config {
private long timeout;
public long getTimeout() {
return timeout;
}
public void setTimeout(long timeout) {
this.timeout = timeout;
}
}
}위와 같은 예시 코드로 작업해 보실 수 있을 것 같습니다.
감사합니다.
kafka 업데이트 강의 듣고 시포요
0
85
1
강의 교안
0
75
1
마이크로서비스간 통신 시, 인증 처리
0
79
1
api gateway 에서 인증 처리
0
66
1
섹션 19 질문드립니다
0
54
1
강의 자료 업데이트
0
84
1
부하분산 강의 섹션
0
57
1
강의자료는 어디에서?
0
72
1
강의 자료는 어디서 다운 받을 수 있나요?
0
110
1
전체 사용자 조회시 오류
0
59
1
혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??
0
113
2
학습 방향
0
96
2
카프카 커넥터 사용 목적 문의
0
86
2
kafka 강의
0
109
2
서비스 디스커버리 종류
0
87
2
강의 자료에 대해서 궁금해요
0
117
2
GlobalFilter, LoggingFilter가 동작하지 않습니다.
0
90
2
Kafka Source Connect 버전 에러
0
85
2
소스커넥터는 사용안한 거 맞죠?
0
81
2
강의자료 업데이트 문의
0
96
2
강의에서 BCryptPasswordEncoder 에 역할(5-2)
0
57
1
강의 업데이트 계획이 궁금합니다.
0
113
2
MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)
0
163
2
어떤 것이 업데이트 된 건가요?
0
164
2





