springcloud中Fegin调用常见问题

寵の児 提交于 2019-11-25 19:40:51

springcloud中fegin调用常见问题

注: 本文基于Springcloud Edgware版本

一、fegin调用首次失败问题

1、Fegin简介:

feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解,Feign 整合了Ribbon。

2、原因分析:

fegin整合Hystrix组件后,Hystrix默认的超时时间是1秒,如果超过这个时间尚未响应,将会进入自定义的fallback代码,往往首次请求会比较慢(由于Ribbon是懒加载的,在首次请求时,才会开始初始化相关类),这个响应时间可能就大于1秒了,出现调用失败

3、解决方案
  • 增加Hystrix的超时时间,默认为1s
hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds:  10000
  • 配置饿加载(推荐使用)
ribbon:
  eager-load:
    clients:  project1,project2
    enabled:  true
  • 禁用Hystrix超时(不推荐使用)
hystrix:
  command:
    default:
      execution:
        timeout:
          enabled:  false
  • 为fegin全局禁用hystrix(此种方式较为极端,不建议使用)
fegin:
	hystrix:
		enabled: false
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!