Zuul的后端服务隔离

时间:2018-01-23 10:25:49

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

我们计划在生产中使用Zuul作为API网关。我不确定Zuul在这个特定情况下的行为。

假设有两个后端服务A和B坐在Zuul后面。服务A速度慢,但流量很大。通过Zuul访问服务B的客户会怎样?

在客户端,服务B将不可用,因为服务A减慢了Zuul,因此没有资源来处理服务B的请求。 我不确定这一点,任何建议或经验将不胜感激。

1 个答案:

答案 0 :(得分:2)

您可以将各个端点配置为使用自己的线程池并拥有自己的超时时间。

zuul:
    ribbonIsolationStrategy: THREAD
    threadPool:
        useSeparateThreadPools: true
host:
    connect-timeout-millis: 60000
    socket-timeout-millis: 60000
routes:
    examples2:
      path: /something/**
      serviceId: examples
      stripPrefix: true
    services:
      path: /services/**
      serviceId: services
      stripPrefix: false
      sensitiveHeaders: true
    auth:
      path: /oauth/**
      serviceId: saapi-auth-server
      stripPrefix: false
      sensitiveHeaders: true

hystrix:
  command:
    default:
      execution:
        timeout:
          enabled: false
        isolation:
          thread:
            timeoutInMilliseconds: 60000

auth:
  ribbon:
    ReadTimeout: 60000
    ConnectTimeout: 60000

services:
  ribbon:
    ReadTimeout: 60000
    ConnectTimeout: 60000

以下是我们的一个网关的示例配置,可以帮助您入门。