Spring Cloud2023.0.3

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. Release Train Spring Boot 相容性 (詳細資訊請參閱此處)。

Release Train Spring Boot 世代
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) 都已達到生命週期終止狀態,不再受支援。

Bug 修正和向後相容的功能會透過服務版本 (SR) 新增到每個 Release Train。一旦您確定要使用的 Spring Cloud 版本,您應該使用該 Release Train 的最新服務版本。您可以在我們的發行說明頁面找到最新的服務版本資訊。

現在您已經知道要使用哪個 Release Train 以及該 Release Train 的最新服務版本,您已準備好將 Spring Cloud BOM 新增到您的應用程式中。

<properties>
    <spring-cloud.version>2023.0.2</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 '3.3.0'
  id 'io.spring.dependency-management' version '1.1.4'
}

repositories {
  mavenCentral()
}

ext {
  set('springCloudVersion', "2023.0.2")
}

dependencyManagement {
  imports {
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
  }
}

建議您使用 Release Train BOM spring-cloud-dependencies。這是一個僅 BOM 的版本,它僅包含依賴項管理,不包含外掛程式宣告或對 Spring 或 Spring Boot 的直接引用。您可以使用 Spring Boot 父 POM,或使用 Spring Boot 的 BOM (spring-boot-dependencies) 來管理 Spring Boot 版本。

就像 Spring Boot 一樣,許多 Spring Cloud 專案都包含 starters,您可以將其作為依賴項新增,以將各種雲端原生功能新增到您的專案中。在許多情況下,許多功能僅透過將 starter 新增到您的類別路徑中即可啟用。Starter 名稱記錄在個別專案中。以下是如何將 Spring Cloud Config Client 和 Spring Cloud Netflix Eureka client 新增到您的應用程式的範例。

<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 Data Flow

雲端原生編排服務,用於在現代運行時環境上組合微服務應用程式。易於使用的 DSL、拖放式 GUI 和 REST-API 共同簡化了基於微服務的資料管道的整體編排。

Spring Cloud Function

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

Spring Cloud Stream

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

Spring Cloud Stream Applications

Spring Cloud Stream Applications 是開箱即用的 Spring Boot 應用程式,使用 Spring Cloud Stream 中的 binder 抽象,提供與外部中間件系統 (例如 Apache Kafka、RabbitMQ 等) 的整合。

Spring Cloud Task

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

Spring Cloud Task App Starters

Spring Cloud Task App Starters 是 Spring Boot 應用程式,可以是任何程序,包括 Spring Batch jobs,這些 jobs 不會永遠運行,並且它們會在有限的資料處理期間後結束/停止。

Spring Cloud Zookeeper

使用 Apache Zookeeper 的服務發現和組態管理。

Spring Cloud Contract

Spring Cloud Contract 是一個總括專案,包含協助使用者成功實作消費者驅動合約方法的解決方案。

Spring Cloud OpenFeign

Spring Cloud OpenFeign 透過自動組態和綁定到 Spring Environment 以及其他 Spring 程式設計模型慣用語,為 Spring Boot 應用程式提供整合。

Spring Cloud Bus

一個事件匯流排,用於透過分散式訊息傳遞將服務和服務實例連結在一起。適用於在叢集中傳播狀態變更 (例如組態變更事件)。

Spring Cloud Open Service Broker

提供一個用於建構實作 Open Service Broker API 的服務代理的起點。

Release Trains

Spring Cloud 是一個總括專案,由原則上具有不同發行週期的獨立專案組成。為了管理產品組合,發佈了一個 BOM (物料清單),其中包含針對個別專案的精選依賴項集。請前往此處閱讀有關 Release Train 命名慣例的資訊。

Spring Initializr

快速開始您的專案

領先一步

VMware 提供培訓和認證,以加速您的進程。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

了解更多

即將到來的活動

查看 Spring 社群中所有即將到來的活動。

查看全部