3千字详细讲解OpenFeign的使用姿势( 三 )

最后启动测试 , 可以看到 , 超过1秒也能请求成功 。
3千字详细讲解OpenFeign的使用姿势文章插图
4.2 日志打印功能首先需要配置Feign的打印日志的级别 。
@Configurationpublic class FeignConfig {/*** NONE:默认的 , 不显示任何日志* BASIC:仅记录请求方法、URL、响应状态码及执行时间* HEADERS:出了BASIC中定义的信息之外 , 还有请求和响应的头信息* FULL:除了HEADERS中定义的信息之外 , 还有请求和响应的正文及元素*/@Beanpublic Logger.Level feginLoggerLevel() {return Logger.Level.FULL;}}第二步 , 需要设置打印的Feign接口 。 Feign为每个客户端创建一个logger 。 默认情况下 , logger的名称是Feigh接口的完整类名 。 需要注意的是 , Feign的日志打印只会对DEBUG级别做出响应 。
#与server同级logging:level:com.yehongzhi.springcloud.consumer.feign.ProviderClient: debug设置完成后 , 控制台可以看到详细的请求信息 。
3千字详细讲解OpenFeign的使用姿势文章插图
4.3 Feign实现熔断openFeign实际上是已经引入了hystrix的相关jar包 , 所以可以直接使用 , 设置超时时间 , 超时后调用FallBack方法 , 实现熔断机制 。
首先在消费者工程添加Maven依赖 。
org.springframework.cloudspring-cloud-starter-netflix-hystrix第二步 , 在配置中开启熔断机制 , 添加超时时间 。
#默认是不支持的 , 所以这里要开启 , 设置为truefeign:hystrix:enabled: truehystrix:command:default:execution:isolation:thread:timeoutInMilliseconds: 3000第三步 , 编写FallBack类 。
//ProviderClient是贴了@FeignClient注解的接口@Componentpublic class ProviderClientFallBack implements ProviderClient {@Overridepublic String list() {return Arrays.asList("调用fallBack接口", "返回未知结果").toString();}}第四步 , 在对应的Feign接口添加fallback属性 。
//fallback属性 , 填写刚刚编写的FallBack回调类@Component@FeignClient(name = "provider", fallback = ProviderClientFallBack.class)public interface ProviderClient extends ProviderApi {}最后可以测试一下 , 超过设置的3秒 , 则会熔断 , 调用FallBack方法返回 。
3千字详细讲解OpenFeign的使用姿势文章插图
4.4 设置负载均衡前面说过OpenFeign底层是使用Ribbon , Ribbon是负责做负载均衡的组件 。 所以是可以通过配置设置负载均衡的策略 。
默认的是轮询策略 。 如果要换成其他策略 , 比如随机 , 怎么换呢 。
很简单 , 改一下配置即可:
#服务名称provider:ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule#NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #配置规则 随机#NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RoundRobinRule #配置规则 轮询#NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RetryRule #配置规则 重试#NFLoadBalancerRuleClassName: com.netflix.loadbalancer.WeightedResponseTimeRule #配置规则 响应时间权重#NFLoadBalancerRuleClassName: com.netflix.loadbalancer.BestAvailableRule #配置规则 最空闲连接策略总结OpenFeign把RestTemplete , Ribbon , Hystrix糅合在了一起 , 在使用时就可以更加方便 , 优雅地完成整个服务的暴露 , 调用等 。 避免做一些重复的复制粘贴接口URL , 或者重复定义接口等 。 还是非常值得去学习的 。