Sri*_*ikR 7 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.
database: mongodb
server : embeded tomcat server.
port : 8083
Run Code Online (Sandbox Code Playgroud)
所有 3 个微型计算机都在嵌入式 tomcat 服务器上运行。现在我想为所有这些 micros 创建一个通用网关 [API gateway]。这可以帮助我根据收到的请求来路由我的请求,例如:- 例如,如果我收到http://hostname:port_of_gateway/customer的请求。阅读本文后,我需要将请求路由到我的客户微控制器并获取其响应并将其发送回客户端。我可以使用哪种弹簧工具来实现此目的?
因为您的要求非常简单,您可以自己实现这样的网关。这是一个例子。
但如果你真的想使用 Spring 解决方案,你可以尝试使用Spring Cloud Netflix,它是 Spring Cloud 伞项目的一部分。它包括基于Netflix Zuul网关服务的路由器和过滤器功能。
请注意,这不是一个完整的独立应用程序,而是一个库。因此,您仍然应该创建另一个微服务来充当应用程序中的 API 网关。要使其成为网关,您只需将@EnableZuulProxy注释添加到具有注释的同一类即可@SrpingBootApplication。您可以在这里找到一个很好的例子。
另请注意,您应该以某种方式告知网关您的微服务的重定向地址。一般可以通过两种方式完成:
第一种方法简单明了,但对于大量微服务和/或当微服务的位置可以动态变化时(例如,由于自动缩放),效果不是很好。
第二种方法需要额外的组件——服务注册表——并且需要修改其他微服务(让它们在注册表中注册自己)。这是相当复杂的方法,但在复杂架构的情况下是唯一可能的方法。简单而富有表现力的示例可以在同一篇文章中找到。
截至 2018 年 12 月,Spring Cloud 团队宣布Spring Cloud 中几乎所有 Netflix 组件(Eureka 除外)进入维护模式。这意味着明年他们将不会收到任何功能更新(只有错误和安全修复)。所有受影响的组件
都有替代品,包括上面提到的 Netflix Zuul。因此,请考虑在新项目中使用 Spring Cloud Gateway 而不是它。
| 归档时间: |
|
| 查看次数: |
7267 次 |
| 最近记录: |