Spring Cloud(2020.0.3) | 从入门到入土 - 9. 声明式服务调用 OpenFeign 的引入

一、什么是 OpenFeign

来看一下官网解释:

Feign is a declarative web service client. It makes writing web service clients easier. To use Feign create an interface and annotate it. It has pluggable annotation support including Feign annotations and JAX-RS annotations. Feign also supports pluggable encoders and decoders. Spring Cloud adds support for Spring MVC annotations and for using the same HttpMessageConverters used by default in Spring Web. Spring Cloud integrates Eureka, as well as Spring Cloud LoadBalancer to provide a load-balanced http client when using Feign.

总的来说,Feign 是一个声明式的 Web 服务客户端。(下面会说 Feign 与 OpenFeign)

之前我们做服务调用是通过 RestTemplate 进行调用,现在有了 Feign 之后,我们就可以直接声明一个 Service 作为 FeignClient,那里需要,直接进行注入,然后调用具体的 Service 方法即可。

这样做的好处呢,就是封装请求,一次编写,可以到处注入,使用。不然像之前使用 RestTemplate 我们得到处写。

二、Feign 与 OpenFeign

Feign 之前是美国 Netflix 公司开发的一个组件,但是因为 Netflix 与 Spring Cloud 发生了一些事情...

Spring Cloud 现在想慢慢脱离 Netflix ~ 其实很重要的原因是因为 Netflix 更新速度慢,甚至是不更新(Eureka 就是一个例子)

Spring Cloud 后期自己开发了 OpenFeign,也就是我们现在所使用的这个,所以以后我们也是学习 OpenFeign。

三、Ribbon

这个 Ribbon 也是一个 Netflix 发布的组件,该组件是用作负载均衡器,它的话主要是用于客户端负载均衡。

好比说我们现在有三个服务 A,三个服务 B,并且我们将这六个服务都注册到 Eureka 中。

现在其中一个 A 服务,通过 OpenFeign 进行远程调用 B 服务,那么这里是具体调用那一个 B 服务?而决策的因素就是这个 Ribbon 决定的。

Ribbon 可以基于某种负载均衡算法,自动的帮助消费者去请求(我们可以自己配置用那种,也可以使用它默认的)。

当然,这个 Ribbon 后来也被 OpenFeign 集成了,后期我们只需要引入 OpenFeign,这个 Ribbon 也就被引入进来了。

但是!!!!请看官网:Spring Cloud OpenFeign

这段话的大致意思是:Spring Cloud 为了保持兼容性,而且这个 Ribbon 在维护期,所以就不要我们去使用了,取而代之是让我们使用 LoadBalancer 这个玩意,并且让我们将 spring.cloud.loadbalancer.ribbon.enabled 设置成 false。

这个就等以后有机会(估计也没机会了)再去学习 Ribbon 好了~~


这一讲就讲到这里,有问题可以联系我:QQ 2100363119,欢迎大家访问我的个人网站:https://www.lemon1234.com

最近网站已经做好,并且已经上线,欢迎各位留言~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

他 他 = new 他()

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值