Spring cloud 如何在Spring Cloud Gateway中为每个路由设置超时?
在SpringCloudGateway中有没有一种方法可以为每个路由设置不同的超时值? 如 /路线1-30sSpring cloud 如何在Spring Cloud Gateway中为每个路由设置超时?,spring-cloud,spring-cloud-gateway,Spring Cloud,Spring Cloud Gateway,在SpringCloudGateway中有没有一种方法可以为每个路由设置不同的超时值? 如 /路线1-30s /route2-20s是的,我们可以通过为不同的路由定义不同的hystrix命令来完成相同的操作。考虑下面的例子,对于 RoutEy1 1/代码>超时是15秒,因为这里使用的 HySrxs命令“代码>默认被配置为超时15秒。 # =========================================== # Timeout 15 seconds - id: route
/route2-20s是的,我们可以通过为不同的路由定义不同的
hystrix
命令来完成相同的操作。考虑下面的例子,对于<代码> RoutEy1 1/代码>超时是15秒,因为这里使用的<代码> HySrxs<代码>命令“代码>默认被配置为超时15秒。
# ===========================================
# Timeout 15 seconds
- id: route_1
uri: ${test.uri}
predicates:
- Path=/timeout/**
filters:
- name: Hystrix
args:
name: default
fallbackUri: forward:/hystrixfallback
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 15000
# ===========================================
# Timeout 5 seconds
- id: route_2
uri: ${test.uri}/count
predicates:
- Path=/count
filters:
- name: Hystrix
args:
name: applicationTimeOut
fallbackUri: forward:/hystrixfallback
hystrix.command.applicationTimeOut.execution.isolation.thread.timeoutInMilliseconds: 5000
现在对于route_2
使用的hystrix
命令是applicationTimeOut
,超时时间为5秒
# ===========================================
# Timeout 15 seconds
- id: route_1
uri: ${test.uri}
predicates:
- Path=/timeout/**
filters:
- name: Hystrix
args:
name: default
fallbackUri: forward:/hystrixfallback
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 15000
# ===========================================
# Timeout 5 seconds
- id: route_2
uri: ${test.uri}/count
predicates:
- Path=/count
filters:
- name: Hystrix
args:
name: applicationTimeOut
fallbackUri: forward:/hystrixfallback
hystrix.command.applicationTimeOut.execution.isolation.thread.timeoutInMilliseconds: 5000
现在对于route_3
使用的hystrix
命令是apimeout
,超时时间为2秒
# ===========================================
# Timeout 2 seconds
- id: route_3
uri: ${test.uri}
predicates:
- Path=/event/**
filters:
- name: Hystrix
args:
name: apiTimeOut
fallbackUri: forward:/hystrixfallback
hystrix.command.apiTimeOut.execution.isolation.thread.timeoutInMilliseconds: 2000
根据Spring Cloud Gateway文档,这要简单得多: 因此,您可以按每条路由配置连接和读取超时,如下所示:
- id: per_route_timeouts
uri: https://example.org
predicates:
- name: Path
args:
pattern: /delay/{timeout}
metadata:
response-timeout: 200
connect-timeout: 200
如果对您有效,请标记答案。请注意,这不会影响Hystrix超时。