Spring CloudSpring Cloud2025.1.0

Spring Cloud 為開發人員提供了工具,可以快速構建分散式系統中一些常見的模式(例如配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、短生命週期微服務和契約測試)。分散式系統的協調導致了樣板模式,使用 Spring Cloud,開發人員可以快速啟動實現這些模式的服務和應用程式。它們將在任何分散式環境中執行良好,包括開發人員自己的筆記型電腦、裸機資料中心以及 Cloud Foundry 等託管平臺。

特性

Spring Cloud 專注於為典型用例提供良好的開箱即用體驗,並提供可擴充套件機制以涵蓋其他用例。

  • 分散式/版本化配置

  • 服務註冊與發現

  • 路由

  • 服務間呼叫

  • 負載均衡

  • 斷路器

  • 分散式訊息傳遞

  • 短生命週期微服務(任務)

  • 消費者驅動和生產者驅動的契約測試

演講和影片

入門

生成一個新的 Spring Cloud 專案

最簡單的入門方法是訪問 start.spring.io,選擇您的 Spring Boot 版本以及要使用的 Spring Cloud 專案。生成專案時,這將把相應的 Spring Cloud BOM 版本新增到您的 Maven/Gradle 檔案中。

將 Spring Cloud 新增到現有 Spring Boot 應用程式

如果您有一個現有的 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'
  //...
}

主要專案

Spring Cloud Config

由 Git 倉庫支援的集中式外部配置管理。配置資源直接對映到 Spring `Environment`,但如果需要,也可以由非 Spring 應用程式使用。

Spring Cloud Gateway

Spring Cloud Gateway 是一個基於 Spring Framework 和 Spring Boot 的智慧可程式設計路由器。

Spring Cloud Netflix

與 Netflix OSS 的 Eureka 服務發現整合。

Spring Cloud Consul

使用 Hashicorp Consul 進行服務發現和配置管理。

Spring Cloud Kubernetes

Kubernetes 與 Spring Cloud Discovery Client、Configuration 整合,包括用於發現和配置的控制器。

Spring Cloud Function

Spring Cloud Function 透過函式促進業務邏輯的實現。它支援跨無伺服器提供商的統一程式設計模型,以及獨立執行(本地或 PaaS)的能力。

Spring Cloud Stream

一個輕量級的事件驅動微服務框架,用於快速構建可以連線到外部系統的應用程式。簡單的宣告式模型,用於在 Spring Boot 應用程式之間使用 Apache Kafka 或 RabbitMQ 傳送和接收訊息。

Spring Cloud Stream Applications

Spring Cloud Stream Applications 是開箱即用的 Spring Boot 應用程式,它們使用 Spring Cloud Stream 中的繫結器抽象,提供與 Apache Kafka、RabbitMQ 等外部中介軟體系統的整合。

Spring Cloud Task

一個短生命週期的微服務框架,用於快速構建執行有限資料處理量的應用程式。簡單的宣告式,用於為 Spring Boot 應用程式新增功能性和非功能性特性。

Spring Cloud Task App Starters

Spring Cloud Task App Starters 是 Spring Boot 應用程式,可以是任何程序,包括 Spring Batch 作業,它們不會永遠執行,而是在有限的資料處理週期後結束/停止。

Spring Cloud Zookeeper

使用 Apache Zookeeper 進行服務發現和配置管理。

Spring Cloud Contract

Spring Cloud Contract 是一個傘形專案,包含幫助使用者成功實施消費者驅動契約方法的解決方案。

Spring Cloud OpenFeign

Spring Cloud OpenFeign 透過自動配置以及與 Spring 環境和其他 Spring 程式設計模型慣用語的繫結,為 Spring Boot 應用程式提供整合。

Spring Cloud Bus

一個事件匯流排,用於透過分散式訊息傳遞將服務和服務例項連線起來。可用於跨叢集傳播狀態更改(例如配置更改事件)。

Spring Cloud Open Service Broker

為構建實現 Open Service Broker API 的服務代理提供起點。

釋出序列

Spring Cloud 是一個由獨立專案組成的傘形專案,原則上具有不同的釋出週期。為了管理產品組合,釋出了一個 BOM (Bill of Materials),其中包含精心策劃的各個專案的依賴項集合。請點選此處閱讀有關釋出序列命名約定的資訊。

Spring Initializr

快速啟動您的專案

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有