Spring CloudSpring Cloud2024.0.1

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 Cloud 添加到现有的 Spring Boot 应用中,第一步是确定应该使用哪个版本的 Spring Cloud。你在应用中使用的版本取决于你正在使用的 Spring Boot 版本。

下表概述了 Spring Cloud 的哪个版本对应 Spring Boot 的哪个版本。

表 1. 发布火车与 Spring Boot 兼容性(有关更详细的信息,请参阅 此处)。

发布火车 Spring Boot 版本
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>2024.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.4.0'
  id 'io.spring.dependency-management' version '1.1.6'
}

repositories {
  mavenCentral()
}

ext {
  set('springCloudVersion', "2024.0.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 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-APIs 共同简化了基于微服务的数据管道的整体编排。

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 作业,这些作业不会永远运行,而是在有限的数据处理期后结束/停止。

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 的服务代理提供起点。

发布火车

Spring Cloud 是一个伞形项目,包含独立的项目,这些项目原则上具有不同的发布周期。为了管理这个组合,会发布一个 BOM (Bill of Materials),其中包含了对各个项目精心策划的依赖关系。转到此处阅读关于发布火车命名规范的信息。

Spring Initializr

快速启动你的项目

先行一步

VMware 提供培训和认证,加速你的发展。

了解更多

获取支持

Tanzu Spring 通过一项简单的订阅,提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

近期活动

查看 Spring 社区的所有近期活动。

查看全部