首页 > 解决方案 > 使用默认设置时使用哪个 Spring Cloud Zuul 超时属性?

问题描述

我正在设置(Spring boot 2)Spring cloud zuul/gateway 并遇到超时问题。在阅读了官方文档并检查了一个类似的问题之后,我不相信提出的解决方案。

我使用以下类型的路由配置:

routes:
 test-service:
  path: /test-service/**
  serviceId: test-service

我认为这不是“url路由”,所以我认为这些属性不适用:

zuul.host.connect-timeout-millis
zuul.host.connection-request-timeout-millis
zuul.host.socket-timeout-millis

我尝试设置以下属性,但 IntelliJ 指示这些属性“不存在”。这是 IDE 中的一个怪癖,还是这些属性仅在某些情况下存在/激活?

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds= 11000
hystrix.command.default.execution.timeout.enabled=false
ribbon.ConnectTimeout= 10000
ribbon.ReadTimeout: 10000

例如,从我的 bootstrap.yml 中查看此屏幕截图,其中仅建议其他属性: 在此处输入图像描述

Ribbon 和 hystrix 在这个 maven 依赖项下默认存在并处于活动状态吗?

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>

标签: javaspring-bootspring-cloudnetflix-zuulgateway

解决方案


如果你想在 Zuul 中配置超时,你有两个选择,

如果您已将 Zuul 配置为使用服务发现,则需要使用以下 Ribbon 属性配置这些超时

ribbon.ReadTimeout 
ribbon.SocketTimeout

如果您通过指定 URL 配置了 Zuul 路由,则使用以下属性,根据您的配置,您需要使用这个

zuul.host.connect-timeout-millis
zuul.host.socket-timeout-millis

官方文档在这里(查看 Zuul Timeouts 部分)

https://cloud.spring.io/spring-cloud-netflix/multi/multi__router_and_filter_zuul.html

下面将展示它们如何与 Hystrix 一起工作,

https://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#_service_discovery_configuration

注意:属性区分大小写

我尝试设置以下属性,但 IntelliJ 指示这些属性“不存在”。这是 IDE 中的一个怪癖,还是这些属性仅在某些情况下存在/激活?

可能是 IDE 中的怪癖。我们有官方文档说属性退出。


推荐阅读