Spring boot 哪一个是使用spring的微服务的最佳API网关?

Spring boot 哪一个是使用spring的微服务的最佳API网关?,spring-boot,microservices,Spring Boot,Microservices,我正在尝试用微服务架构构建一个简单的应用程序。 下面是我创建的3个微服务的详细信息 1] Customer. database: mongodb server : embeded tomcat server. port : 8081 2] vendor. database: mongodb server : embeded tomcat server. port : 8082 3] product

我正在尝试用微服务架构构建一个简单的应用程序。 下面是我创建的3个微服务的详细信息

1] Customer.
       database: mongodb
       server  : embeded tomcat server.
       port    : 8081
2] vendor.
       database: mongodb
       server  : embeded tomcat server.
       port    : 8082
3] product.
       database: mongodb
       server  : embeded tomcat server.
       port    : 8083
所有3个micro都在嵌入式tomcat服务器上运行。 现在我想为所有这些micro创建一个公共网关[API网关]。 这有助于我根据收到的请求路由请求,例如:- 例如,如果我收到一个请求。 在阅读本文时,我需要将请求发送到我的客户micro,获取其响应并将其发送回客户。
我可以使用哪种spring工具来实现这一点?

因为您的需求非常简单,您可以自己实现这样的网关。给你

但如果你真的想使用Spring解决方案,你可以尝试使用Spring云伞项目的一部分。它包括基于网关服务的路由器和过滤器功能

请注意,这不是一个完整的独立应用程序,而是一个库。因此,您仍然应该创建另一个微服务,作为应用程序中的API网关。要使其成为网关,您只需将
@EnableZuulProxy
注释添加到具有
@SrpingBootApplication
注释的同一类中。你可以找到一个很好的例子

还请注意,您应该以某种方式通知网关您的微服务地址以进行重定向。一般可通过两种方式完成:

  • 通过静态定义网关微服务配置中的地址
  • 通过与服务注册中心等一起申请
  • 第一种方法简单明了,但对于大量的微服务和/或微服务位置可以动态变化(例如,由于自动缩放)的情况,这种方法并不适用。
    第二种方法需要额外的组件-服务注册表-并且需要修改其他微服务(让它们在注册表中注册自己)。这是一种非常复杂的方法,但在复杂的体系结构中是唯一可能的。简单但富有表现力的示例可以在中找到

    更新(一月十九日) 截至2018年12月,Spring Cloud团队发现Spring Cloud中几乎所有Netflix组件(Eureka除外)都进入了维护模式。这意味着明年他们将不会收到任何功能更新(只有bug和安全修复)。

    对于所有受影响的组件,包括上面提到的Netflix Zuul,都有可用的配置。因此,请考虑在新项目中使用Spring云网关来代替它。

    谢谢@ G00 GLUNENB,但我并没有说使用ZUUL需要EURKA。第一种方法既没有提到Zuul,也没有第二种方法只需要Eureka。选择什么方法和工具完全取决于应用程序的设计者。