Java 微服务:不使用SpringAPI网关进行服务发现

Java 微服务:不使用SpringAPI网关进行服务发现,java,spring-boot,java-8,microservices,spring-rest,Java,Spring Boot,Java 8,Microservices,Spring Rest,这件事让我很难受。我们希望将遗留应用程序迁移到Microservice应用程序(SpringBoot,Java8) 根据架构师的说法,我们不需要服务发现,API网关足以进行服务发现和路由。 请注意,目前,部署是内部部署服务器,我们将有固定数量的节点,F5/负载平衡器将能够将请求路由到API网关,然后路由到微服务 我们可以使用Spring Cloud API Gateway而不进行服务发现吗?一个简短的回答是的,您可以使用Spring Cloud API Gateway而不进行服务发现 但这实际上

这件事让我很难受。我们希望将遗留应用程序迁移到Microservice应用程序(SpringBoot,Java8)

根据架构师的说法,我们不需要服务发现,API网关足以进行服务发现和路由。

请注意,目前,部署是内部部署服务器,我们将有固定数量的节点,F5/负载平衡器将能够将请求路由到API网关,然后路由到微服务


我们可以使用Spring Cloud API Gateway而不进行服务发现吗?

一个简短的回答是的,您可以使用Spring Cloud API Gateway而不进行服务发现

但这实际上取决于应用程序的大小以及它将处理的流量

您可以开始迁移到微服务,而无需服务发现。 对于内部服务对服务通信,只需使用实数硬编码IP地址和端口即可

关于进行服务发现的API网关
。我可能错了,但您将无法通过Api网关进行通信,因为它也不知道目标的位置(服务位置也必须硬编码)

一旦您开始感觉需要向外扩展,您将不可避免地使用服务注册工具。如果你开始考虑使用哪一种,我可以建议你使用

无论如何,您很可能最终不得不将服务发现机制注入到您的基础架构中。如果新体系结构对您有利,并且有进一步扩展的计划,您可以从一开始就这样做,也可以稍后再处理


如果您有迁移到云的计划,那么您可以提前为您的基础架构考虑Kubernetes。它为您提供了开箱即用的服务发现机制。

如果您愿意,Kubernetes是一个很好的平台

它可以处理从服务发现到部署的各个部分


您只需制作一个云就绪的docker映像(最好)并将其部署到kubernetes,kubernetes将根据您的配置将一个内部端点映射到该映像,并且您的服务将在该映像中注册(如果我用spring cloud和eureka server来谈的话)。

,我认为您没有提到任何需要服务发现来解决的问题,所以您的架构师可能是对的。你为什么认为你可能需要它?然而,一个好的架构将确保您可以在不造成严重后果的情况下改变主意,因此决策不应该很重要。说到软件架构,做出正确的决策远不如让决策变得不重要。@MattTimmermans,我们希望在微服务之间进行内部通信。因此,如果我们没有服务发现,我们将不得不通过API网关进行调用,这几乎不费时间。@Stephan Tsybulki感谢您提供的详细答案,这似乎是为了避免对URL进行编码,我们需要开始考虑领事。如果你觉得这个问题相关的话,你能投票支持这个问题吗?到目前为止,我们正在进行整体扼杀。我们只准备了一些基本的东西,目前还没有库伯内特斯的计划。但我们肯定会寻找这个选择。如果您觉得问题相关,请向上投票!