Zuul在长期请求中超时

Evi*_*us1 43 spring-cloud netflix-zuul

我正在使用作为zuul代理(@EnableZuulProxy)的前端spring spring应用程序(微服务)将来自外部源的请求路由到使用spring cloud(spring boot)编写的其他内部微服务.
zuul服务器直接位于samples部分的应用程序中

@SpringBootApplication
@Controller
@EnableZuulProxy
@EnableDiscoveryClient
public class ZuulServerApplication {
    public static void main(String[] args) {
        new SpringApplicationBuilder(ZuulServerApplication.class).web(true).run(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

我在本地运行这组服务,它似乎工作正常但如果我在网络上运行它有一些负载或通过VPN然后我开始看到zuul转发错误,我在日志中看到客户端超时

有没有办法改变zuul前锋的超时,所以我可以从我的直接关注中消除这个问题.有什么可访问的参数设置.

我正处于发布阶段,这只是出现了:)

spe*_*ibb 34

要设置的属性是:ribbon.ReadTimeout通常和<service>.ribbon.ReadTimeout特定服务,以毫秒为单位.该功能区的wiki有一些例子. 这个javadoc有属性名称.


aco*_*hen 32

在我的情况下,我不得不更改以下属性:

zuul.host.socket-timeout-millis=30000
Run Code Online (Sandbox Code Playgroud)

  • 这是不使用功能区时的解决方案 (12认同)
  • 是否可以在每个主机上应用此解决方案以避免将其应用于所有端点? (2认同)

cod*_*ent 20

我遇到了同样的问题:在长时间的请求中,Zuul的hystrix命令在大约一秒钟后仍然保持超时,尽管设置ribbon.ReadTimeout=10000.

我通过完全禁用超时来解决它:

hystrix:
  command:
    default:
      execution:
        timeout:
          enabled: false
Run Code Online (Sandbox Code Playgroud)

另一个有效的方法是将Zuul的Hystrix隔离策略改为THREAD:

hystrix:
  command:
    default:
      execution:
        isolation:
          strategy: THREAD
          thread:
            timeoutInMilliseconds: 10000
Run Code Online (Sandbox Code Playgroud)


dse*_*ert 14

我不得不改变两次超时以迫使zuul停止超时长时间运行的请求.即使禁用hystrix超时,功能区仍会超时.

hystrix:
  command:
    default:
      execution:
        timeout:
          enabled: false
ribbon:
  ReadTimeout: 100000
  ConnectTimeout: 100000 
Run Code Online (Sandbox Code Playgroud)


Edu*_*Ros 12

这对我有用,我必须在以下位置设置连接和套接字超时application.yml:

zuul:
  host:
    connect-timeout-millis: 60000 # starting the connection 
    socket-timeout-millis: 60000  # monitor the continuous incoming data flow
Run Code Online (Sandbox Code Playgroud)


小智 7

如果 Zuul 使用服务发现,则需要使用ribbon.ReadTimeoutribbon.SocketTimeoutRibbon 属性配置这些超时。

如果您通过指定 URL 配置了 Zuul 路由,则需要使用zuul.host.connect-timeout-milliszuul.host.socket-timeout-millis

我的意思是路线

zuul:
  routes:
    dummy-service:
      path: /dummy/**
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

32572 次

最近记录:

6 年,7 月 前