zoukankan      html  css  js  c++  java
  • SpringCloud之Feign 负载均衡请求超时时间

    版本声明:

      SpringCloud:Greenwich.SR4

       SpringBoot:2.1.9.RELEASE


    Feign调用服务的默认时长是1秒钟,也就是如果超过1秒没连接上或者超过1秒没响应,那么会相应的报错。

    但是在实际的业务中,我们的服务可能因为特别原因(网络、处理压力大等)导致相应速度超过1秒钟,那么就会报错,

    下面我们就来处理如何手动配置Feigin的负载均衡超时等参数

    全局配置

    SpringCloud负载均衡底层用的就是Ribbon

    #--------------Feign负载均衡配置 配置全局超时时间
    ribbon:
      ConnectTimeout: 5000 #请求连接的超时时间,默认时间为1秒
      ReadTimeout: 5000 #请求处理的超时时间

    5秒没有响应成功就报如下错误(真实情况下,会比5s多一些,因为发送请求也需要时间的,模拟超时可以在请求处理的方法上用Thread.sleep()设置休眠时间超过5s)


    局部配置(就是指定提供者)

    #--------------Feign负载均衡配置 局部配置超时时间等
    feign-product-provider: #指定配置的服务名称
      ribbon:
        OkToRetryOnAllOperations: true # 对所有请求都进行重试
        MaxAutoRetries: 2 # 对当前实例的重试次数
        MaxAutoRetriesNextServer: 0 # 切换实例的重试次数(集群状态下,其它对其它实例服务重试的次数)
        ConnectTimeout: 3000 # 请求连接的超时时间
        ReadTimeout: 3000 # 请求处理的超时时间

    上述提到的服务名称如下配置

    spring:
      application:
        name: feign-product-provider # 随意设置

    执行的代码

    输出结果


    不是一共重试两次吗?这里边就涉及到了一个公式

     共重试次数 = (MaxAutoRetries+MaxAutoRetriesNextServer+(MaxAutoRetries * MaxAutoRetiresNextServer)
          = 2 + 0 + (2 * 0)
          = 2
    在加上我们手动请求一次那就是:2 + 1 = 3次



    公式很重要!
  • 相关阅读:
    问题解决(2)
    问题解决(1)
    ubuntu16.04spyder闪退
    ubuntu16.04安装caffe
    python做批量剪切、旋转等小程序
    html中如何使得改变背景的透明度时,背景上的文字透明度不被改变
    css下拉菜单制作
    float浮动
    css盒子模型
    css选择器,背景样式,文本属性
  • 原文地址:https://www.cnblogs.com/arebirth/p/springcloudfeignloadbalancetime.html
Copyright © 2011-2022 走看看