微服务 - 服务发现和服务网关之间的确切区别是什么?

Jef*_*ook 4 microservices netflix-eureka netflix-zuul

我读过这样的文章:API 网关和边缘服务有什么区别?,但仍然不清楚服务发现(比如 Eureka)和服务网关(Zuul)之间的确切区别是什么?任何指针?

在此处输入图片说明

Con*_*enu 6

服务网关(又名 API 网关)正在接收来自客户端的请求。这是客户看到的(单一)服务。但是它自己不知道如何做客户想要的,所以它必须将请求转发到另一个服务。它检查 URL 并提取实际服务于请求的服务的名称,即后端服务。该后端服务可能位于不同的机器上。它可能有一个动态地址或端口,由于不同的原因(节点失败,新节点添加到网络等),可能会不时更改。

因此,网关不知道将请求转发到哪里。这是服务发现服务 (Eureka) 的工作。Eureka 知道每个服务在哪个节点上以及在哪个地址和端口上监听请求。网关询问 Eureka 在哪​​里可以找到后端服务(通过只发送它的名称)。Eureka 响应后,网关将请求转发到该地址。


小智 6

如果您关注 Zuul 和 Eureka 的职责,那么差异就更容易理解了。正如您在下面看到的,每个人都有特定的任务。这是主要的区别。

在此输入图像描述