领先一步
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),其中包含精心策划的各个项目的依赖项集合。请点击此处阅读有关发布序列命名约定的信息。