本文记录SpringCloud中Feign配置的两种方式
目前环境下各系统间接口基本按照Restfull规范制定,Feign作为一个接口客户端,在SpringCloud体系下有定义明晰,开发便捷的优势.
同时,针对不同外部服务,我们可以通过自定义Feign的配置,来实现个性化的三方接口管理.本次介绍通过配置文件进行的全局配置及通过配置类的个性化配置两种实现方式
对于如何搭建Feign,网络上有大量教程,此处引用其中一篇博客:
详细内容可以参考博文SpringCloud实战五:Spring Cloud Feign 服务调用
需要注意的点为:
@FeignClient(value = "", fallback = , decode404 = true, url = "")
value:
必填,若在SpringCloud的Eureka体系下,指注册在Eureka中的服务名称(不区分大小写);若针对三方服务,仅仅唯一标识三方即可
fallback:
当前FeignClient的降级类,该降级类需要实现该接口
decode404:
默认false,设置为true后会对404类的异常进行捕捉而不是异常抛出,并返回处理后的Json结果
url:
指定调用的实际路径,若配置该参数,则在value无法匹配服务的情况下,会按照指定的url进行请求
对于Feign的部分高级应用,网络上有大量教程,此处引用其中一篇博客:
详细内容可以参考博文SpringCloud实战六:Spring Cloud Feign 高级应用
需要注意的点为:
# 开启Feign熔断及Hystrix配置
feign:
hystrix:
enabled: true
hystrix:
command:
default:
execution:
isolation:
thread:
# 连接超时时间
timeoutInMilliseconds: 80000
# Ribbon 超时配置
ribbon:
ReadTimeout: 60000
ConnectTimeout: 60000
# 同一实例最大重试次数,不包括首次调用。默认值为0
MaxAutoRetries: 0
# 同一个微服务其他实例的最大重试次数,不包括第一次调用的实例。默认值为1。
# 此处配置需要结合业务场景,置为0后不再进行接口重试
MaxAutoRetriesNextServer: 0
# 是否所有操作(GET、POST等)都允许重试。默认值为false
OkToRetryOnAllOperations: false
# 控制Feign客户端(proxy-external)熔断参数
# 此处配置会对全部@FeignClient(value="proxy-external")注解的类生效
feign.client.config:
# 连接超时
proxy-external.connectTimeout: 10000
# 读超时
proxy-external.readTimeout: 10000
SpringCloud系列十一:自定义Feign
SpringCloud系列十二:手动创建Feign
SpringCloud系列十三:Feign对继承、压缩、日志的支持以及构造多参数请求
Spring Cloud OpenFeign详解
Spring Cloud系列之Feign的常见问题总结解