关于springcloud:学习总结之SpringCloud中Feign和Zuul的区别

10次阅读

共计 794 个字符,预计需要花费 2 分钟才能阅读完成。

1. 概述

SpringCloud 是一系列框架的汇合,它推崇一站式解决问题。外面有两个框架 Feign 和 Zuul, 两者都是集成了 Ribbon 和 Hystrix 框架,同时都具备近程调用的性能。性能上有重叠的两个框架为什么会同时应用?
在解决这个问题之前,先简略介绍一下两者在应用上的区别

2. 应用区别

2.1 近程调用

2.1.1 Feign

Feign 的近程调用在于应用接口,调用接口办法来实现近程调用,就像在浏览器地址栏输出申请一样。

2.1.2 Zuul

Zuul 的调用是通过一个配置文件,来实现门路的映射。个人感觉有点相似于 Nginx,通过门路映射到 id,通过 id 找到服务。

2.2 默认设置

2.2.1 Feign

Feign 默认已启用了 ribbon 负载平衡和重试机制,能够间接应用。然而默认没有启用 hystrix。
如果非要应用最好先引入 hystrix 的依赖,接着在配置文件开启 hystrix 的应用。

2.2.2 Zuul

zuul 曾经集成了 ribbon 和 hystrix,默认曾经实现了负载平衡。然而 Zuul 默认没有启用重试性能。如果肯定要应用这个性能,首先要导入 spring-retry 依赖,接着在配置文件中开启重启性能。

2.3 权限管制

这个是 Zuul 独有的性能,它能通过过滤器,执行过滤办法,达到权限管制的作用。

3. 同时应用两个框架的起因

集体看来 Zuul 像是家里的总闸,电流(申请)从总闸流入,流到不同的电器中。所以它默认不开启重试性能,否则每次重试都要流经多个用电设施,不仅响应慢,而且极消耗资源。

Feign 像是连贯两个服务器的导线。它重视业务关系,所以默认不开启 hystrix。就像用电设施是不具备跳闸性能的,它上下游的服务器长时间得不到响应,也会熔断。这是不符合实际状况的。
所以尽管性能上用反复的中央,然而利用场景不同,决定了要同时应用两个框架。
最初大胆揣测一波,接下来会呈现一个整合两者的框架,用来缩小性能的冗余。

正文完
 0