将其他微服务中的服务接口,用feign在本项目中进行调用。
spring cloud feign是一套基于netflix feign实现的声明式服务调用客户端。它使得编写web服务客户端变得更加简单。我们只需要通过创建接口并用注解来配置它既可完成对web服务接口的绑定。它具备可插拔的注解支持,包括feign注解、jax-rs注解。它也支持可插拔的编码器和解码器。spring cloud feign还扩展了对spring mvc注解的支持,同时还整合了ribbon和hystrix来提供均衡负载的http客户端实现。
对于f西班牙大学eign来讲,其实就是一个web接口而已,它内部自集成了spring ribbon 和spring hystrix 断路器功能,也就是说可以支持自动降级和负载均衡功能。可以说,在内部服务与服务之间的相互数据通信桥梁就是通chunlan过feign来实现的。也就是说,我们可以像使用web rvice or dubbo 一样对其进行声明式的配置,这非常棒~ 在我之前的工作中,就大量的使用了feign代理,可以说使用spring cloud 就必须要学会如何深入使用feign代理,当然它也非常的简单。
注意:我们feign在第四个版本后需要手工的开启断路器功能才可以生效。
了解完feign的基础配置之后,我们当然要开始代码实现了。首先我们需要编写一个interface,并且这个interface一定是已知的服务(也就是注册到了eureka上的接口服务,我们在这里需要使用interface的方式进行声明)
@feignclient注解就是feign的注解声明了,里面name属性表示了当前代理的服务app name; fallback属性当然就是我们调用服务失败的降级策略了,也就是当网络闪段、异常等调用代理服务失败时,会根据断路器的超时时间降级到指定的fallback所赋予的hellorvicehystrix类中,我们可以进行降级处理。
我们的feign底层默认提供了重试机制,也就是底层使用retryer类对调用服务进行重试调用操作,通过底层代码我们知道默认是每100ms去进行调用伊人红妆,调用次数是5次。既然feign集成了ribbon 与 hystrix ,那么必然会使用两个超时机制,一个是ri粗犷是什么意思bbon的超时时间,一个是hystrix的超时时间.这两个超时时间的含义截然不同,千万要注意配置。
经验小结: 我们可以配置hystrix的超时时间大于ribbon的超时时间。并且如果想进行重试最好是hystrix的超时时间设置为ribbon的超时时间的倍数。
这样我们可以进行重试策略,如果hystrix的超时时间小于ribbon的超时时间,则不会重试,直接被断路器组件对调用请求执行请求段熔机制,服务降级。
name表示微服务名称:前端直接从本项目访问其他项目服务接口
失败后indexfeignfailback中对应的接口,进行降级。
代理服务中异常等要保持一致
以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。
本文发布于:2023-04-06 02:21:27,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/dfc48bfd7aa9ae8ee8401ff72657aec8.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:SpringCloud之Feign代理,声明式服务调用方式.doc
本文 PDF 下载地址:SpringCloud之Feign代理,声明式服务调用方式.pdf
留言与评论(共有 0 条评论) |