抢先一步
VMware 提供培训和认证,助力您快速进步。
了解更多Spring Cloud 为开发者提供了工具,以便在分布式系统中快速构建一些常见模式(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、短生命周期微服务和契约测试)。分布式系统的协调会导致样板模式,而使用 Spring Cloud 开发人员可以快速建立实现这些模式的服务和应用程序。它们将在任何分布式环境中良好运行,包括开发人员自己的笔记本电脑、裸机数据中心和 Cloud Foundry 等托管平台。
开始的最简单方法是访问 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 版本 |
---|---|
2023.0.x 又名 Leyton | 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)已全部达到生命周期终点,不再受支持。
通过服务版本 (SR) 向每个发行版添加错误修复和向后兼容的功能。一旦确定要使用的 Spring Cloud 版本,你应该使用该发行版的最新服务版本。你可以在我们的 版本说明页面 上找到最新的服务版本信息。
现在你知道了要使用哪个发行版以及该发行版的最新服务版本,就可以将 Spring Cloud BOM 添加到你的应用程序中了。
<properties>
<spring-cloud.version>2023.0.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 '3.2.0'
id 'io.spring.dependency-management' version '1.1.4'
}
repositories {
mavenCentral()
}
ext {
set('springCloudVersion', "2023.0.0")
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
建议您使用发行版 train BOM
spring-cloud-dependencies
。这是一个仅 BOM 的版本,它只包含依赖项管理,不包含插件声明或对 Spring 或 Spring Boot 的直接引用。您可以使用 Spring Boot 父 POM,或使用 Spring Boot 的 BOM(spring-boot-dependencies
)来管理 Spring Boot 版本。
与 Spring Boot 一样,许多 Spring Cloud 项目都包含 starter,您可以将其作为依赖项添加,以向您的项目添加各种云原生功能。在许多情况下,只需将 starter 添加到您的类路径即可启用许多功能。starter 名称记录在各个项目中。下面是一个示例,说明如何将 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 进行服务发现和配置管理。
一种云原生编排服务,适用于现代运行时上的可组合微服务应用程序。易于使用的 DSL、拖放式 GUI 和 REST-API 共同简化了基于微服务的管道整体编排。
Spring Cloud Function 促进了通过函数实现业务逻辑。它支持跨无服务器提供商的统一编程模型,以及独立运行(本地或 PaaS 中)的能力。
一个轻量级的事件驱动的微服务框架,用于快速构建可连接到外部系统的应用程序。使用 Apache Kafka 或 RabbitMQ 在 Spring Boot 应用程序之间发送和接收消息的简单声明模型。
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(物料清单),其中包含对各个项目的精选依赖项。点击此处阅读有关发布列车命名约定的信息。
使用Spring Initializr引导您的应用程序。