首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zuul和Ribbon集成

Zuul和Ribbon集成
EN

Stack Overflow用户
提问于 2017-04-21 16:47:07
回答 1查看 11.5K关注 0票数 27

我很难理解Zuul和Ribbon之间的联系。

我想我把祖尔搞清楚了。这是一个反向代理,我可以联系它来访问我的几个服务实例中的一个。它将使用循环算法或您配置的任何操作来选择正确的服务器。它是一个传统的负载均衡器。要了解可用的实例,它可以使用像Eureka这样的注册表。

但是Ribbon给我带来了更多的麻烦。它是作为客户端负载均衡器出售的,但它意味着什么呢?它不需要外部服务器吗?Ribbon是以与Eureka客户端相同的方式嵌入客户端的吗?如果是这样,它是如何工作的?当我使用Ribbon时是否需要Zuul,反之亦然?

在一些文章中,我看到事实上,Zuul默认使用Ribbon来实现负载均衡部分,这让我更加困惑。如果这是真的,那么“客户端”是什么意思?除了路由,Zuul还能做什么?

我希望你能帮助我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-02 08:17:03

客户端和服务器始终是相对的。Zuul是您的服务实例的客户端,而您的服务实例是Zuul的服务器。

当我们使用传统的负载均衡器(服务器端负载均衡器)时,API调用者(客户端)只知道一个端点,即负载均衡器,而客户端不知道服务器的列表。负载均衡器从列表中选择服务器。

当我们使用像Ribbon这样的客户端负载均衡器时,API调用者(客户端)应该知道服务器的列表,并从列表中选择一个。这就是为什么我们称它为客户端负载均衡器。

正如您所知道的,Ribbon是一个客户端负载均衡器模块,并集成到许多http客户端模块中。举个例子,Feign和负载均衡的RestTemplate支持Ribbon。也就是说,当与ribbon一起使用时,Feign和Load-balanced RestTemplate可以从给定列表或eureka列表中选择服务器。

关于Zuul,有一个RibbonRoutingFilter可以将您的请求路由到实际的服务实例。RibbonRoutingFilter正在使用Ribbon从您的配置或Eureka提供的列表中选择服务器。因此,如果你想使用Zuul作为负载均衡的反向代理,Zuul需要Ribbon。

票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43538030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档