Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
spring cloud zuul超时配置不起作用_Spring_Netflix Zuul - Fatal编程技术网

spring cloud zuul超时配置不起作用

spring cloud zuul超时配置不起作用,spring,netflix-zuul,Spring,Netflix Zuul,根据SpringCloudZuul的说法,下面的配置应该使zuul在20秒后超时,但是,它在10秒时超时 server: port: 8769 spring: application: name: service-zuul zuul: host: connect-timeout-millis: 20000 socket-timeout-millis: 60000 zuul: routes: tp: path: /** url

根据SpringCloudZuul的说法,下面的配置应该使zuul在20秒后超时,但是,它在10秒时超时

server:
  port: 8769
spring:
  application:
    name: service-zuul
zuul:
  host:
    connect-timeout-millis: 20000
    socket-timeout-millis: 60000
zuul:
  routes:
    tp:
      path: /**
      url: http://localhost:9998
ribbon:eureka:enabled: false

从控制台输出可以看出,过滤器和超时异常之间的间隔仅为10秒。这意味着
zuul.host.connect timeout millis
不起作用。

如果您将zuul与e Eureka一起使用,请尝试定义以下属性

ribbon:
  ReadTimeout: 60000
  ConnectTimeout: 20000

如果将Zuul与Eureka一起使用,Zuul将使用
RibbonRoutingFilter
进行路由,而不是
SimpleHostRoutingFilter
。在这种情况下,HTTP请求由Ribbon处理。

我终于找到了一个解决方案:

我以前使用过属性,这是第一次尝试yml,似乎一个项目必须聚合为一个前缀:

zuul:
  host:
    connect-timeout-millis: 20000
    socket-timeout-millis: 60000
  routes:
    tp:
      path: /**
      url: http://localhost:9998

这样,后端服务器最多可以有60秒的响应时间。此外,我还发现配置中的顺序很重要。

将以下配置添加到Zuul gateway以使其正常工作:

hystrix.command.default.execution.timeout.enabled=true

ribbon.ReadTimeout=5000 ribbon.ConnectTimeout=5000

#(ribbon.ReadTimeout+ribbon.connectTimeout)*(1+ribbon.maxAutoRetries(默认值0)*(ribbon.MaxAutoRetriesNextServer(默认值1)+1) #timeoutingmicrosides=(5000+5000)*(1+0)*(1+1)=20000

hystrix.command.default.execution.isolation.thread.TIMEOUTIMESTIONS=21000


注意:虽然IDE抱怨这是未知属性,但它仍然有效。

输出还显示是java…socketexception异常引起的,不是吗?@rjv我猜这意味着
zuul.host.socket timeout millis
不起作用?不确定只有测试才能判断。我问了一个问题,得到了一个问题而不是答案!:)我想和你核实一下socketexception是否可能导致超时,即是什么代码导致zuul主机超时?@rjv yes,
SocketTimeoutException:read timed out
是基本异常。没有代码导致错误,我认为后端服务器处理请求所需的时间超过10秒。有太多未知因素,所以让我做一些猜测。1.,为什么要将所有/**路由到家庭服务?2.家庭服务是否正确?3.你有代理人吗?如果我在这一点上对你有意义的话,那么4.,你能为一个路由提供一个回退提供者吗?在这个路由中,你可以创建一个回退响应或ClientHttpResponse类型的响应来返回异常的原因?这是真的,但我没有将zuul与eureka一起使用。