透過Spring Boot,Spring Cloud Gateway構建基於Consul叢集的微服務案例演示 – Piotr的TechBlog
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閘道器背後,外部客戶端隱藏了整個系統。
更詳細細節點選原文
相關文章
- 通過Spring Boot,Spring Cloud Gateway構建基於Consul叢集的微服務案例演示 – Piotr的TechBlogSpring BootCloudGateway微服務
- 基於Spring Cloud微服務叢集的服務治理思考SpringCloud微服務
- 基於Spring Boot和Spring Cloud實現微服務架構Spring BootCloud微服務架構
- 基於Istio/gRPC/Redis/BigQuery/Spring Boot/Spring Cloud和Stackdriver的微服務案例RPCRedisSpring BootCloud微服務
- 使用Spring Boot和GraalVM在Knative上構建微服務 - piotrSpring BootLVM微服務
- 基於Spring Cloud的微服務落地SpringCloud微服務
- 使用Spring Cloud Kubernetes基於Kubernetes、Spring Boot和Docker構建微服務架構 - MoriohCloudSpring BootDocker微服務架構
- 基於 Spring Cloud 完整的微服務架構實戰SpringCloud微服務架構
- Spring Cloud構建微服務架構-spring cloud服務監控中心SpringCloud微服務架構
- Spring Cloud構建微服務架構—服務消費基礎SpringCloud微服務架構
- 微服務閘道器 Spring Cloud Gateway微服務SpringCloudGateway
- Spring Cloud構建分散式微服務雲架構基礎SpringCloud分散式微服務架構
- 基於Spring Cloud和Netflix OSS構建微服務,Part 2SpringCloud微服務
- 基於Spring Cloud和Netflix OSS 構建微服務-Part 1SpringCloud微服務
- 基於 Spring Cloud 的微服務腳手架SpringCloud微服務
- Spring Cloud Spring Boot mybatis分散式微服務雲架構CloudSpring BootMyBatis分散式微服務架構
- Spring Cloud構建微服務架構(Feign)SpringCloud微服務架構
- Spring Cloud構建微服務架構—配置中心SpringCloud微服務架構
- spring cloud微服務分散式雲架構-Gateway入門SpringCloud微服務分散式架構Gateway
- 使用Kafka Streams和Spring Boot微服務中的分散式事務 - PiotrKafkaSpring Boot微服務分散式
- spring cloud + spring boot + springmvc+mybatis微服務雲架構CloudSpring BootSpringMVCMyBatis微服務架構
- spring cloud微服務分散式雲架構--服務註冊(consul)SpringCloud微服務分散式架構
- Spring Cloud構建微服務架構—服務閘道器過濾器SpringCloud微服務架構過濾器
- 構建Spring Cloud微服務分散式雲架構SpringCloud微服務分散式架構
- Spring Cloud分散式微服務雲架構構建SpringCloud分散式微服務架構
- Java微服務開發指南 -- 使用Spring Boot構建微服務Java微服務Spring Boot
- Spring Cloud構建微服務架構-服務閘道器SpringCloud微服務架構
- Spring Cloud構建微服務架構-Hystrix服務降級SpringCloud微服務架構
- 微服務閘道器實戰——Spring Cloud Gateway微服務SpringCloudGateway
- Spring Cloud Gateway 入門案例SpringCloudGateway
- 構建Spring Boot應用的微服務服務動態路由Spring Boot微服務路由
- Spring Cloud微服務-基於Eureka的feign呼叫(1)SpringCloud微服務
- Spring Cloud構建微服務架構-Hystrix斷路器SpringCloud微服務架構
- Spring Cloud構建微服務架構—Hystrix斷路器SpringCloud微服務架構
- Spring Cloud構建微服務架構分散式配置中心SpringCloud微服務架構分散式
- Spring Cloud Spring Boot mybatis 企業分散式微服務雲(二)服務註冊與發現(Consul)CloudSpring BootMyBatis分散式微服務
- 微服務閘道器Spring Cloud Gateway的應用實戰微服務SpringCloudGateway
- spring cloud + spring boot + springmvc+mybatis分散式微服務雲架構CloudSpring BootSpringMVCMyBatis分散式微服務架構