微服务调用时的超时异常,使用feign的时候负载均衡策略的调整

Posted big-cut-cat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务调用时的超时异常,使用feign的时候负载均衡策略的调整相关的知识,希望对你有一定的参考价值。

1.超时:比如订单服务调order-service用商品服务product-service的接口:

此接口需要一定的响应时间,调用它的时候会遇到此异常

技术分享图片

解决办法,在order-service配置文件application.yml里设置超时时间:

超时配置:
            默认optons readtimeout是60,但是由于hystrix默认是1秒超时,所以响应超过1秒则为超时

server:
  port: 8781


#指定注册中心地址
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

#服务的名称
spring:
  application:
    name: order-service

#自定义负载均衡策略
product-service:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

#修改调用超时时间2s
feign:
  client:
    config:
      default:
        connectTimeout: 2000
        readTimeout: 2000

 

 

2.使用feign的时候负载均衡策略的调整

  ribbon和feign两个的区别和选择
            开发的时候选择feign
                 1.默认集成了ribbon
                 2.起来更加思路清晰和方便
                 3.采用注解方式进行配置,配置熔断等方式方便

所以:

  feign配置负载均衡和ribbon一样,不配置默认轮询,

  配置了ribbon就是配置feign,如上面文件的配置

以上是关于微服务调用时的超时异常,使用feign的时候负载均衡策略的调整的主要内容,如果未能解决你的问题,请参考以下文章

feign服务间调用超时时间

Spring Cloud中HystrixRibbon及Feign的熔断关系

Java 微服务之 SpringCloud快速入门day02 Feign

Java 微服务之 SpringCloud快速入门day02 Feign

Netflix Feign - 通过微服务传播状态和异常

HTTP调用(二):feign调用的超时