我是靠谱客的博主 老迟到自行车,最近开发中收集的这篇文章主要介绍SpringBoot 关于Feign的超时时间配置操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Feign的超时时间配置

feign 时间设置

  • contextId: 可以指定为某个接口进行单独的超时设置
@FeignClient(value = "user",contextId ="device")
public interface DeviceFeignService {

    @RequestMapping(value = { "/deviceId" })
    JsonResult<Device> 
         getByDeviceId(@RequestParam("deviceId") final Long deviceId);
}
feign:
  client:
    config:
      #default代表所有服务
      default: 
        #feign客户端建立连接超时时间
        connect-timeout: 10000
        #feign客户端建立连接后读取资源超时时间
        read-timeout: 20000
      #而service-test表示当调用service-test这个服务时,用下面的配置
      device:
        connect-timeout: 10000
        read-timeout: 20000

Feign调用问题 超时

1、项目结构

每个微服务是provider情况下有一个client模块(里面含有定义好的feignclient 接口) 专门打包出去给其他微服务消费

这样的话 其他需要调用的微服务只要把这个client jar包引入即可,

2、在其他微服务中 引入clientXX.jar

这时候有一个坑, 就是 @EnableFeignClients这个注解默认是只扫描项目启动application下的包 如果不同项目可能包路径不一致, 所以@EnableFeignClients得指定你的client.jar里面的路径 或者两个项目中 共同的顶级路径 例如com.XX.cloud 同一个公司内部 顶层包结构应该是一致的

3、feign调用超时

默认feign调用超时是1000毫秒的 有断点就肯定超时

需要加上以下配置

feign.hystrix.enabled=true
#feign调用默认是1000毫秒=1秒   应该设置成更长时间1000 * 60 * 5  = 5分钟  add by six-vision
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=300000
hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds=300000
hystrix.command.default.circuitBreaker.forceClosed=true
#hystrix.command.default.execution.timeout.enabled=false
#请求处理的超时时间  add by six-vision
ribbon.ReadTimeout=300000
ribbon.SocketTimeout=300000
#请求连接的超时时间 add by six-vision
ribbon.ConnectTimeout: 30000

以上为个人经验,希望能给大家一个参考,也希望大家多多支持靠谱客。

最后

以上就是老迟到自行车为你收集整理的SpringBoot 关于Feign的超时时间配置操作的全部内容,希望文章能够帮你解决SpringBoot 关于Feign的超时时间配置操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(212)

评论列表共有 0 条评论

立即
投稿
返回
顶部