java - 注册表发现服务与 API 网关相比有何优势?

标签 java spring microservices

发现服务器允许客户端发现现有服务。它不依赖于固定的 url。 然而,具有路由功能的 api 网关也允许仅通过 url 联系服务。 在一种情况下和另一种情况下,客户端都依赖于 url,那么有什么区别?

最佳答案

注册表发现服务的目的是发现IP未知的服务并对其进行监控。

API 网关的目的是充当客户端的入口点。在将客户端重定向到适当的服务之前,它可以处理身份验证、日志记录、请求过滤等事务。

这些类型的服务具有不同的目的,并且通常一起工作,因此并不存在相互对立的情况。


例如,让我们想象一下有 5 个服务的以下场景:

  • API 网关
  • 注册表发现服务
  • 身份验证服务
  • 客户服务
  • 添加服务

客户端将调用 API 网关。对于每个请求,API 网关都会验证该请求,如果未经过身份验证,它可能会将用户重定向到身份验证服务,如果经过身份验证,它会根据 url 模式将用户重定向到客户服务或添加服务。为了查找目标服务的实际地址,它使用注册表发现服务。

关于java - 注册表发现服务与 API 网关相比有何优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73537790/

相关文章:

java - Spring微服务之间的通信

java - 如何从 Thymeleaf 模板访问库 JAR 文件中的样式表?

node.js - Node.js微服务应如何在Rabbitmq重新启动后生存下来?

spring - Spring Batch 中批处理状态和退出状态的区别

microservices - 微服务中的事件溯源、CQRS 和数据库

java - 如何改善微服务之间的通信

java - 在 Toast 中使用字符串资源

java - 为什么对于单个异常两次执行catch block ?

java - Transfer对象和Domain对象的区别

java - 子项目之间的 Gradle 依赖关系