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

标签 microservices netflix-zuul netflix-eureka

我读过类似的文章:What is the difference between an API-Gateway and an Edge Service? ,但仍然不清楚服务发现(比如 Eureka)和服务网关(Zuul)之间的确切区别是什么?任何指针?

enter image description here

最佳答案

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

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

关于微服务 - 服务发现和服务网关之间的确切区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52851770/

相关文章:

spring - 在 Spring Boot 管理员中未经授权

spring-boot - Eureka 客户端异常 com.netflix.discovery.shared.transport.TransportException : Cannot execute request on any known server

kubernetes - 如何在 Kubernetes 中选择 API 网关?

spring-cloud - Eureka 客户端未反射(reflect) OUT_OF_SERVICE 的手动状态

microservices - Eureka超时异常

java - Spring Cloud - 将服务绑定(bind)在一起

microservices - 我们真的需要微服务中的事件源和CQRS吗?

java - 无法使用休息服务

netflix-zuul - Netflix Zuul 查询字符串编码

java - tls zuul 和微服务用证书相互认证