我们计划在生产中使用Zuul作为API网关。我不确定Zuul在这个特定情况下的行为。
假设有两个后端服务A和B坐在Zuul后面。服务A速度慢,但流量很大。通过Zuul访问服务B的客户会怎样?
在客户端,服务B将不可用,因为服务A减慢了Zuul,因此没有资源来处理服务B的请求。 我不确定这一点,任何建议或经验将不胜感激。
答案 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
以下是我们的一个网关的示例配置,可以帮助您入门。