領先一步
VMware 提供培訓和認證,助您加速進步。
瞭解更多Spring Cloud 為開發人員提供了工具,可以快速構建分散式系統中一些常見的模式(例如配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、短生命週期微服務和契約測試)。分散式系統的協調導致了樣板模式,使用 Spring Cloud,開發人員可以快速啟動實現這些模式的服務和應用程式。它們將在任何分散式環境中執行良好,包括開發人員自己的筆記型電腦、裸機資料中心以及 Cloud Foundry 等託管平臺。
Spring Cloud 專注於為典型用例提供良好的開箱即用體驗,並提供可擴充套件機制以涵蓋其他用例。
分散式/版本化配置
服務註冊與發現
路由
服務間呼叫
負載均衡
斷路器
分散式訊息傳遞
短生命週期微服務(任務)
消費者驅動和生產者驅動的契約測試
最簡單的入門方法是訪問 start.spring.io,選擇您的 Spring Boot 版本以及要使用的 Spring Cloud 專案。生成專案時,這將把相應的 Spring Cloud BOM 版本新增到您的 Maven/Gradle 檔案中。
如果您有一個現有的 Spring Boot 應用程式,並且想將 Spring Cloud 新增到該應用程式中,第一步是確定您應該使用的 Spring Cloud 版本。您在應用程式中使用的版本將取決於您使用的 Spring Boot 版本。
下表概述了 Spring Cloud 的哪個版本對映到 Spring Boot 的哪個版本。
表 1. 釋出序列 Spring Boot 相容性(有關詳細資訊,請參閱此處)。
| 釋出序列 | Spring Boot 版本 |
|---|---|
| 2025.1.x 即 Oakwood | 4.0.x |
| 2025.0.x 即 Northfields | 3.5.x |
| 2024.0.x 即 Moorgate | 3.4.x |
| 2023.0.x 即 Leyton | 3.3.x, 3.2.x |
| 2022.0.x 即 Kilburn | 3.0.x, 3.1.x (從 2022.0.3 開始) |
| 2021.0.x 即 Jubilee | 2.6.x, 2.7.x (從 2021.0.3 開始) |
| 2020.0.x 即 Ilford | 2.4.x, 2.5.x (從 2020.0.3 開始) |
| Hoxton | 2.2.x, 2.3.x (從 SR5 開始) |
| Greenwich | 2.1.x |
| Finchley | 2.0.x |
| Edgware | 1.5.x |
| Dalston | 1.5.x |
Spring Cloud Dalston、Edgware、Finchley、Greenwich、2020.0 (即 Ilford)、2021.0 (即 Jubilee) 和 2022.0 (即 Kilburn) 均已達到生命週期終止狀態,不再受支援。
透過服務版本(SR)將錯誤修復和向後相容的特性新增到每個釋出序列中。一旦您確定要使用的 Spring Cloud 版本,您應該使用該釋出序列的最新服務版本。您可以在我們的釋出說明頁面找到最新的服務版本資訊。
現在您已經知道要使用的釋出序列以及該釋出序列的最新服務版本,您就可以將 Spring Cloud BOM 新增到您的應用程式中了。
<properties>
<spring-cloud.version>2025.1.0</spring-cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
plugins {
id 'java'
id 'org.springframework.boot' version '4.0.0'
id 'io.spring.dependency-management' version '1.1.7'
}
repositories {
mavenCentral()
}
ext {
set('springCloudVersion', "2025.1.0")
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
建議您使用釋出序列 BOM `spring-cloud-dependencies`。這是一個純 BOM 版本,它只包含依賴管理,不包含外掛宣告或對 Spring 或 Spring Boot 的直接引用。您可以 Spring Boot 父 POM,或使用 Spring Boot 的 BOM (`spring-boot-dependencies`) 來管理 Spring Boot 版本。
就像 Spring Boot 一樣,許多 Spring Cloud 專案都包含啟動器,您可以將其新增為依賴項,以向專案新增各種雲原生功能。在許多情況下,只需將啟動器新增到類路徑即可啟用許多功能。啟動器名稱在各個專案中都有文件說明。下面是一個示例,說明如何將 Spring Cloud Config Client 和 Spring Cloud Netflix Eureka 客戶端新增到您的應用程式中。
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
...
</dependencies>
dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-config'
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
//...
}
由 Git 倉庫支援的集中式外部配置管理。配置資源直接對映到 Spring `Environment`,但如果需要,也可以由非 Spring 應用程式使用。
Spring Cloud Gateway 是一個基於 Spring Framework 和 Spring Boot 的智慧可程式設計路由器。
與 Netflix OSS 的 Eureka 服務發現整合。
使用 Hashicorp Consul 進行服務發現和配置管理。
Kubernetes 與 Spring Cloud Discovery Client、Configuration 整合,包括用於發現和配置的控制器。
Spring Cloud Function 透過函式促進業務邏輯的實現。它支援跨無伺服器提供商的統一程式設計模型,以及獨立執行(本地或 PaaS)的能力。
一個輕量級的事件驅動微服務框架,用於快速構建可以連線到外部系統的應用程式。簡單的宣告式模型,用於在 Spring Boot 應用程式之間使用 Apache Kafka 或 RabbitMQ 傳送和接收訊息。
Spring Cloud Stream Applications 是開箱即用的 Spring Boot 應用程式,它們使用 Spring Cloud Stream 中的繫結器抽象,提供與 Apache Kafka、RabbitMQ 等外部中介軟體系統的整合。
一個短生命週期的微服務框架,用於快速構建執行有限資料處理量的應用程式。簡單的宣告式,用於為 Spring Boot 應用程式新增功能性和非功能性特性。
Spring Cloud Task App Starters 是 Spring Boot 應用程式,可以是任何程序,包括 Spring Batch 作業,它們不會永遠執行,而是在有限的資料處理週期後結束/停止。
使用 Apache Zookeeper 進行服務發現和配置管理。
Spring Cloud Contract 是一個傘形專案,包含幫助使用者成功實施消費者驅動契約方法的解決方案。
Spring Cloud OpenFeign 透過自動配置以及與 Spring 環境和其他 Spring 程式設計模型慣用語的繫結,為 Spring Boot 應用程式提供整合。
一個事件匯流排,用於透過分散式訊息傳遞將服務和服務例項連線起來。可用於跨叢集傳播狀態更改(例如配置更改事件)。
為構建實現 Open Service Broker API 的服務代理提供起點。
Spring Cloud 是一個由獨立專案組成的傘形專案,原則上具有不同的釋出週期。為了管理產品組合,釋出了一個 BOM (Bill of Materials),其中包含精心策劃的各個專案的依賴項集合。請點選此處閱讀有關釋出序列命名約定的資訊。