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 社区所有即将举行的活动。

查看所有