我在这件事上经历了一段非常艰难的时期。我们希望将遗留应用程序迁移到微服务应用程序(Spring-boot、Java 8)。
根据架构师的说法,我们不需要服务发现,API 网关足以进行服务发现和路由。
请注意,目前部署是本地服务器,我们将拥有固定数量的节点,F5/负载均衡器将能够将请求路由到 API 网关,然后路由到微服务。
我们可以在没有服务发现的情况下依靠 Spring Cloud API Gateway 生存吗?
最佳答案
简短的回答是的,您可以使用 Spring Cloud API Gateway 而无需服务发现。
但这实际上取决于应用程序的大小以及它将处理的流量。
您可以开始迁移到微服务,无需服务发现。 对于内部服务到服务的通信,只需使用真实的硬编码 IP 地址和端口。
关于API网关进行服务发现。我可能是错的,但您将无法通过 Api 网关进行通信,因为它也不知道目标的位置(服务位置也必须进行硬编码)。
一旦您开始感觉需要横向扩展,您将无法避免使用服务注册表工具。如果您开始考虑选择哪一个,我建议您使用 HashiCorp Consul .
无论如何,您最终很可能必须将服务发现机制注入(inject)您的基础设施中。您可以从头开始做,也可以稍后再处理,如果新的架构对您有利并且会有进一步扩展的计划。
如果您有迁移到云的计划,那么您可以提前考虑为您的基础设施考虑 Kubernetes。它为您提供开箱即用的服务发现机制。
关于java - 微服务: Without Service Discovery With Spring API Gateway,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59516801/