springcloud feign超时时间设置

最近在通过Feign进行调用远程服务时总是报如下异常

java.util.concurrent.TimeoutException: null
at com.netflix.hystrix.AbstractCommand.handleTimeoutViaFallback(AbstractCommand.java:997) ~[hystrix-core-1.5.12.jar:1.5.12]
at com.netflix.hystrix.AbstractCommand.access$500(AbstractCommand.java:60) ~[hystrix-core-1.5.12.jar:1.5.12]
at com.netflix.hystrix.AbstractCommand$12.call(AbstractCommand.java:610) ~[hystrix-core-1.5.12.jar:1.5.12]
at com.netflix.hystrix.AbstractCommand$12.call(AbstractCommand.java:601) ~[hystrix-core-1.5.12.jar:1.5.12]
at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$4.onError(OperatorOnErrorResumeNextViaFunction.java:140) ~[rxjava-1.3.8.jar:1.3.8]

后来才知道,Hystrix启用后,超时时间为1秒,因此网上有三种解决方案,分别是禁用hystrix,另外就是设置超时时间了

但是大部分的说明都是设置

hystrix:
  command:
    default:
      execution:
        timeout:
          enabled: true
        isolation:
          thread:
            timeoutInMilliseconds:8000

但是我用的是springboot2.0,根本没有这些属性的设置,通过找资料发现必须通过feign.client.config来进行设置。feign.client.config接收一个map类型数据,default代表所有服务,而service-test表示当调用service-test这个服务时,用下面的配置

feign:
  client:
    config:
      default: 
        connect-timeout: 10000
        read-timeout: 20000
      service-test:
        connect-timeout: 10000
        read-timeout: 20000

 

你可能感兴趣的:(SpringBoot,JAVA)