SpringCloud的超时配置

1.ribbon的超时

   ribbon超时只使用于远程调用其他服务方式或者依赖ribbon进行转发的方式

# 请求连接的超时时间
ribbon.ConnectTimeout=2000
# 请求处理的超时时间
ribbon.ReadTimeout=2000
#不指定Ribbon默认使用轮询进行重试
ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RetryRule
# 在所有HTTP Method进行重试
ribbon.OkToRetryOnAllOperations=true
# 每台机器最大重试次数
ribbon.MaxAutoRetries=2
# 可以再重试几台机器
ribbon.MaxAutoRetriesNextServer=2

2.  zuul网关

Zuul代理的请求配置socket超时和读取超时、连接超时,则根据您的配置,有两种选择:

  • 如果Zuul使用服务发现,则需要使用ribbon.ReadTimeout(单位毫秒)和ribbon.SocketTimeout(单位毫秒) 、ribbon.ConnectTimeoutRibbon属性配置这些超时。
  • 如果通过指定URL配置了Zuul路由,则需要使用zuul.host.connect-timeout-millis和zuul.host.socket-timeout-millis、zuul.host.connectTimeoutMillis。

 3. Gateway网关

         Gateway超时配置分为全局路由超时时间配置和单独路由的超时时间配置。

3.1 全局路由超时时间配置

spring:
  cloud:
    gateway:
      httpclient:
        connect-timeout: 1000
        response-timeout: 5s


#connect-timeout 必须以毫秒为单位指定连接超时时间.
#response-timeout 必须指定为java.time.Duration

3.2 局部路由的超时时间配置

可以通过路由的metadata以下两个参数配置每个路由超时:
  connect-timeout 必须以毫秒为单位指定连接超时时间.
  response-timeout 必须以毫秒为单位指定响应超时时间.

- id: per_route_timeouts
  uri: https://example.org
  predicates:
    - name: Path
      args:
        pattern: /delay/{timeout}
  metadata:
    response-timeout: 200
    connect-timeout: 200

4. 熔断器Hystrix

Hystrix依赖于Hystrix框架,触发熔断

## hystrix ,3秒后自动超时
hystrix:
  command:
    default: #default全局有效,service id指定应用有效
      execution:
        timeout:
          enabled: true     #如果enabled设置为false,则请求超时交给ribbon控制,为true,则超时作为熔断根据
        isolation:
          thread:
            timeoutInMilliseconds: 3000

直接禁用hystrix:
feign:
  hystrix:
    enabled: false

参考:

SpringCloud的各种超时时间配置效果_xxc1605629895的博客-CSDN博客_flipping property

Spring Cloud Gateway网关之超时时间配置 | 豆萁程序猿

你可能感兴趣的:(Sprng,Cloud,spring,cloud)