Zuul ReadTimeout by Service

时间:2017-01-30 19:24:37

标签: spring spring-boot spring-cloud netflix-zuul spring-cloud-netflix

我有一个Zuul代理,它可以正常工作,直到它重定向到服务器,该服务器需要比正常时间(超过10秒)更长的响应时间。

我可以通过属性(zuul.host.socket-timeout-millis)修改读取超时,以便它可以正常工作。

ribbon.eureka.enabled=false
zuul.host.connect-timeout-millis=100000
zuul.host.socket-timeout-millis=100000

但是我需要根据代理到达的服务进行不同的超时。

我的架构中没有Eureka所以我在属性中禁用了它。 (ribbon.eureka.enabled =假)

我试过

hystrix.command.default.execution.timeout.enabled=false
hystrix.command.messages.execution.isolation.strategy=THREAD
hystrix.command.messages.execution.isolation.thread.timeoutInMilliseconds= 100000

但它不起作用。它始终使用zuul.host.socket-timeout-millis上的值,如果我没有设置此属性Zuul,则使用10秒超时。

我也试过

messages.ribbon.ReadTimeout=120000
ribbon.ReadTimeout=60000

但它总是使用zuul.host.socket-timeout-millis

上的内容

我不知道如何通过服务设置超时。

所以我可以设置service1 30秒,service2设置45秒,其他服务默认设置为60。

我该怎么做?

1 个答案:

答案 0 :(得分:-1)

我说你有,但我会问:你是否尝试过同时使用更高的价值配置这两个属性?

它应该可以工作,我们在Zuul中使用此功能并且它运行良好,但您需要配置booth超时(Zuul和Ribbon)

您可以在此处获得有关其工作原理的信息:RibbonHystrix

请注意,根据您使用Zuul的方式,您的客户端名称可能与Ribbon和Hystrix的名称不同。