通过Spring Boot,Spring Cloud Gateway构建基于Consul集群的微服务案例演示 – Piotr的TechBlog

19-11-07 banq
                   

Spring Cloud Consul目提供了通过自动配置Consul和Spring启动应用程序的集成。通过使用众所周知的Spring Framework注释样式,我们可以在基于微服务的环境中启用和配置通用模式。

这些模式包括使用Consul代理的服务发现,使用Consul键/值存储的分布式配置,使用Spring Cloud Bus的分布式事件以及Consul事件。该项目还支持基于Netflix Ribbon的客户端负载平衡器和基于Spring Cloud Gateway的API网关。在本文中,我将介绍以下主题:

  • 将Spring Boot应用程序与Consul发现集成
  • 将Spring Cloud Gateway与Consul发现集成
  • 使用Consul KV在Spring Boot应用程序中分发配置
  • 在集群模式下运行Consul
  • 定义微服务和网关的虚拟区域

案例演示

示例系统包含四个独立的微服务。他们中的一些人可能会称呼其他人暴露的端点。该应用程序源代码可在GitHub上找到:https : //github.com/piomin/sample-spring-cloud-consul.git

在当前示例中,我们将尝试开发一个简单的订单系统,供客户购买产品。如果客户决定确认要购买的选定产品清单,则POST请求将发送到订购服务。它由Order prepare(@RequestBody Order order)REST控制器中的方法处理。此方法负责订单准备。

首先,它会根据清单中的每种产品的价格,客户订单历史记录及其在系统中的类别来计算最终价格,方法是从客户服务。然后,它通过调用来验证客户的帐户余额是否足以执行订单account-service,最后,它返回计算出的价格。如果客户确认该操作,PUT /{id}则调用该方法。该请求由Order accept(@PathVariable Long id)REST控制器中的方法处理。它会更改订单状态并从客户帐户中提取资金。系统架构分为隐藏在API网关后面的各个微服务。

从技术上讲,我们有四个使用Consul发现和KV存储通过REST API进行通信的Spring Boot应用程序。在Spring Cloud Gateway之上构建的API网关背后,外部客户端隐藏了整个系统。

更详细细节点击原文