Spring Cloud의 구성 요소 시간 초과 요약
3720 단어 springcloud각 구성 요소 시간 초과
Spring Cloud는 Spring Boot을 기반으로 한 마이크로 서비스 구현 프레임워크입니다.그는 마이크로 서비스 개발에 필요한 설정 관리, 서비스 발견, 차단기, 스마트 루트, 마이크로 에이전트, 제어 버스, 전역 자물쇠, 정책 결정 경선, 분포식 세션과 집단 상태 관리 등 구성 요소를 제공했다.가장 중요한 것은springboot 프레임워크와 함께 사용하면 마이크로서비스 구조의 클라우드 서비스를 개발하는 데 매우 편리하다는 것이다.Spring Cloud는 매우 많은 하위 프레임워크를 포함하는데 그 중에서 Spring Cloud 넷플릭스는 그 중의 프레임워크이다. 넷플릭스가 개발한 후에 Spring Cloud 대가족에 합병되었다. 주로 제공하는 모듈은 서비스 발견, 차단기와 모니터링, 스마트 루트, 클라이언트의 부하 균형 등을 포함한다.
본고는 Spring Cloud 각 구성 요소의 시간 초과 관련 내용을 소개하고 참고 학습을 위해 공유할 것입니다. 다음은 더 이상 말하지 않겠습니다. 상세한 소개를 보겠습니다.
리본의 시간 초과
전역 설정:
ribbon:
ReadTimeout: 60000
ConnectTimeout: 60000
로컬 설정:
service-id:
ribbon:
ReadTimeout: 1000
ConnectTimeout: 1000
그 중에서 서비스-id는 리본이 사용하는 가상 호스트 이름으로 일반적으로 유레카 서버에 등록된 서비스 이름과 일치한다. 즉, spring.application.name
과 일치한다.Feign의 시간 초과
Feign은 Spring Cloud Edgware를 시작으로 속성 구성 시간 초과를 지원합니다.
feign:
client:
config:
feignName:
connectTimeout: 5000
readTimeout: 5000
구판본에 대해서는 feign.Request.Options
을 쓸 수 있고, 참고: org.springframework.cloud.netflix.feign.ribbon.FeignRibbonClientAutoConfiguration#feignRequestOptions
의 작법을 참고하면 된다.RestTemplate의 시간 초과
일부 경우 RestTemplate를 사용했을 수 있습니다. 예를 들어
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
시간 초과는 다음과 같이 설정할 수 있습니다.
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
SimpleClientHttpRequestFactory simpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory();
simpleClientHttpRequestFactory.setConnectTimeout(1000);
simpleClientHttpRequestFactory.setReadTimeout(1000);
return new RestTemplate(simpleClientHttpRequestFactory);
}
Zuul의 시간 초과Zuul의 시간 초과는 비교적 복잡하다. 왜냐하면 Zuul은 Ribbon, Hystrix를 통합했기 때문이다.다음은 두 가지 상황으로 나누어 토론한다.
만약 Zuul의 라우팅이 Ribbon을 사용한다면
그러면 Zuul의 시간 초과는 Ribbon, Hystrix와 관련이 있습니다. 이때 Zuul의 시간 초과는 다음과 같이 구성할 수 있습니다.
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 1000
ribbon:
ReadTimeout: 1000
ConnectTimeout: 1000
코드 해석: 이 경우 Zuul 전송에 사용되는 필터는 org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter
입니다. 이 필터에서 Hystrix와 Ribbon을 통합했습니다.Zuul의 라우팅이 Ribbon을 사용하지 않는 경우
예를 들어 Zuul의 라우팅 구성은 다음과 같습니다.
zuul:
routes:
user-route: # ,user-route , 。
url: http://localhost:8000/ # url
path: /user/** # url 。
그러면 Zuul의 시간 초과는 다음 두 가지 구성에만 적용됩니다.
zuul:
host:
socket-timeout-millis: 10000
connect-timeout-millis: 2000
코드 해석: URL 루트를 직접 설정하는 방식은 Ribbon을 사용할 수도 없고 Hystrix를 사용할 수도 없습니다. Zuul 전송에 사용되는 필터는 org.springframework.cloud.netflix.zuul.filters.route.SimpleHostRoutingFilter
입니다. 이 필터에서 Zuul은 Apache HttpClient를 사용하여 전송합니다.현실 장면에서 때때로 두 가지 루트 방식이 협조적으로 사용될 수 있기 때문에 상기 모든 속성을 설정하는 것을 권장합니다.
Hystrix의 시간 초과
hystrix:
command:
default:
execution:
timeout:
enabled: true
isolation:
thread:
timeoutInMilliseconds: 1000
위와 같이 Hystrix의 기본 시간 초과 시간은 1초입니다.기본적으로 시간 초과 메커니즘을 엽니다.Hystrix의 시간 초과를 해제하려면 xxx.enabled
를 false로 설정합니다.Tips
구성 요소가 Hystrix와 함께 사용되는 경우 일반적으로 Hystrix의 시간 초과 > 다른 구성 요소의 시간 초과를 권장합니다. 그렇지 않으면 재시도 기능이 효력을 상실할 수 있습니다.
총결산
이상은 바로 이 글의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 대해 참고 학습 가치가 있기를 바랍니다. 의문이 있으면 댓글로 교류해 주십시오. 저희에 대한 지지에 감사드립니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.