通過Spring Boot,Spring Cloud Gateway構建基於Consul叢集的微服務案例演示 – Piotr的TechBlog

banq發表於2019-11-07

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閘道器背後,外部客戶端隱藏了整個系統。

更詳細細節點選原文

相關文章