Spring Cloud 是一个用于构建分布式系统的工具集,它提供了一系列的框架和组件,帮助开发者快速构建和部署微服务架构的应用程序。下面是 Spring Cloud 提供的框架和组件:
Spring Cloud Azure 是一个开源项目,它使用原生的 Spring 应用开发所特有的常规表达式和配置,在你的 Spring 应用与 Azure 服务之间提供集成。尽管名称相似,但 Spring Cloud Azure 与 Azure Spring Apps 不同,后者是一个为在 Azure 上运行 Spring 应用而设计的 Web 托管平台。
Spring Cloud Alibaba(https://sca.aliyun.com/zh-cn/)为分布式应用开发提供一站式解决方案。它包含开发分布式应用所需的所有组件,使你可以轻松使用 Spring Cloud 开发应用程序。
借助 Spring Cloud Alibaba,你只需添加一些注解和少量配置,即可将 Spring Cloud 应用连接到阿里巴巴的分布式解决方案,并使用阿里巴巴中间件构建分布式应用系统,👉点击查看详情
Spring Cloud for Amazon Web Services 是一个社区运行的项目。该网站是 https://awspring.io/,源代码仓库位于 https://github.com/awspring/spring-cloud-aws。
Spring Cloud for Amazon Web Services(亚马逊网络服务的 Spring Cloud)简化了与托管的亚马逊网络服务的集成。它提供了一种便捷的方式,使用众所周知的 Spring 习惯用法和 API(例如消息传递或缓存 API)与 AWS 提供的服务进行交互。开发人员可以围绕托管服务构建他们的应用程序,而无需关心基础设施或维护。。
Spring Cloud Bus(Spring Cloud 总线)使用轻量级消息代理连接分布式系统的节点。然后,它可以用于广播状态变化(例如配置更改)或其他管理指令。该项目包含 AMQP 和 Kafka 代理实现。或者,在类路径上找到的任何 Spring Cloud Stream 绑定器都可以开箱即用地用作传输工具,👉点击查看详情
Spring Cloud Circuit Breaker 在不同的断路器实现之间提供了一种抽象。它在你的应用程序中提供了一个一致的 API,让开发人员能够选择最适合你的应用需求的断路器实现。
Spring Boot CLI 为 Spring Cloud 提供了命令行功能。你可以编写 Groovy 脚本以运行 Spring Cloud 组件应用程序(例如 @EnableEurekaServer)。你还可以轻松地进行加密和解密等操作,以使用秘密配置值支持 Spring Cloud Config 客户端。使用 Launcher CLI,你可以从命令行一次性方便地启动诸如 Eureka、Zipkin、Config Server 等服务(在开发时非常有用)。
此项目提供了一个构建 Spring Boot 项目的框架,用于快速实现 Cloud Foundry 的服务代理。
注意:此项目的新版本正在以“Spring Cloud Open Service Broker”的名称进行开发。
Spring Cloud Commons(Spring Cloud 公共包)以两个库的形式提供功能:Spring Cloud Context(Spring Cloud 上下文)和 Spring Cloud Commons(Spring Cloud 公共包)。Spring Cloud Context 为 Spring Cloud 应用程序的 ApplicationContext(应用上下文)提供实用工具和特殊服务(引导上下文、加密、刷新作用域和环境端点)。Spring Cloud Commons 是一组在不同的 Spring Cloud 实现中使用的抽象和通用类(例如 Spring Cloud Netflix 与 Spring Cloud Consul)。
Spring Cloud Config 在分布式系统中为外部化配置提供服务器端和客户端支持。借助配置服务器,你可以在一个中心位置管理所有环境中应用程序的外部属性。客户端和服务器上的概念与 Spring 的 Environment(环境)和 PropertySource(属性源)抽象完全对应,因此它们与 Spring 应用程序非常契合,但也可以用于任何语言运行的任何应用程序。当应用程序在部署管道中从开发环境移动到测试环境再进入生产环境时,你可以管理这些环境之间的配置,并确保应用程序在迁移时拥有运行所需的一切。服务器存储后端的默认实现使用 Git,因此它很容易支持带标签的配置环境版本,并且可以使用各种工具来管理内容。添加替代实现并通过 Spring 配置插入它们很容易,👉点击查看详情
Spring Cloud Consul 通过自动配置以及与 Spring 环境和其他 Spring 编程模型习惯用法的绑定,为 Spring Boot 应用程序提供 Consul 集成。通过一些简单的注解,你可以快速启用和配置应用程序内部的常见模式,并使用 Hashicorp 的 Consul 构建大型分布式系统。所提供的模式包括服务发现、分布式配置和控制总线。
Spring Cloud Contract 是一个涵盖多种解决方案的总括项目,可帮助用户成功实施消费者驱动契约方法。目前,Spring Cloud Contract 由 Spring Cloud Contract Verifier 项目组成。
Spring Cloud Contract Verifier 是一种工具,可实现基于 JVM 的应用程序的消费者驱动契约(CDC)开发。它附带使用 Groovy 或 YAML 编写的契约定义语言(DSL)。契约定义用于生成以下资源:
在对客户端代码进行集成测试时,WireMock(HTTP 服务器存根)默认使用的 JSON 存根定义。测试代码仍必须手动编写,测试数据由 Spring Cloud Contract Verifier 生成。
如果你正在使用消息路由。我们正在与 Spring Integration、Spring Cloud Stream 和 Apache Camel 进行集成。但是,如果你愿意,你可以设置自己的集成。
验收测试(默认在 JUnit 或 Spock 中)用于验证 API 的服务器端实现是否符合契约(服务器测试)。完整的测试由 Spring Cloud Contract Verifier 生成。
Spring Cloud Contract Verifier 将测试驱动开发提升到软件架构层面。
Spring Cloud Function 是一个具有以下高级目标的项目:
通过函数促进业务逻辑的实现。
将业务逻辑的开发生命周期与任何特定的运行时目标解耦,以便相同的代码可以作为 Web 端点、流处理器或任务运行。
支持跨 serverless 提供商的统一编程模型,以及独立运行(在本地或在平台即服务中)的能力。
在 serverless 提供商上启用 Spring Boot 特性(自动配置、依赖注入、指标)。
它抽象了所有的传输细节和基础设施,使开发人员能够保留所有熟悉的工具和流程,并坚定地专注于业务逻辑。
该项目为在 Spring WebFlux 或 Spring WebMVC 之上构建 API 网关提供了库。Spring Cloud Gateway 旨在提供一种简单而有效的方式来路由到 API,并为它们提供诸如安全、监控/指标和弹性等横切关注点,👉点击开始学习
Spring Cloud GCP 项目使 Spring 框架成为 Google 云平台 (GCP) 的一等公民。
Spring Cloud GCP 不再是 Spring Cloud 发布系列的一部分。新的存储库位置是 https://github.com/GoogleCloudPlatform/spring-cloud-gcp。如果你正在从 1.x 版本进行升级,请查看迁移指南,以从 1.x 版本升级到 2.0.0(或更高版本)。
Spring Cloud Kubernetes 提供了众所周知的 Spring Cloud 接口的实现,允许开发人员在 Kubernetes 上构建和运行 Spring Cloud 应用程序。虽然在构建云原生应用程序时,这个项目可能对你有用,但在 Kubernetes 上部署 Spring Boot 应用程序并不是必需的。如果你刚刚开始在 Kubernetes 上运行 Spring Boot 应用程序的旅程,那么仅使用基本的 Spring Boot 应用程序和 Kubernetes 本身就可以完成很多事情。
Spring Cloud Netflix 为 Spring Boot 应用程序提供 Netflix OSS(开源软件套件)集成,通过自动配置并绑定到 Spring 环境以及其他 Spring 编程模型习惯用法。只需几个简单的注解,你就可以快速启用和配置应用程序内部的常见模式,并使用经过实战考验的 Netflix 组件构建大型分布式系统。所提供的模式包括服务发现(Eureka),👉点击查看详情
Spring Cloud Open Service Broker 是一个用于构建实现开放服务代理 API 的 Spring Boot 应用程序的框架。
Open Service Broker API 项目允许开发人员向在 Cloud Foundry、Kubernetes 和 OpenShift 等云原生平台中运行的应用程序提供服务。Spring Cloud Open Service Broker 提供了一个基于 Spring Boot 的框架,使您能够在支持开放服务代理 API 的平台上快速为自己的托管服务创建服务代理。
此项目通过自动配置以及与 Spring 环境和其他 Spring 编程模型习惯用法的绑定,为 Spring Boot 应用程序提供 OpenFeign 集成。
警告:正如在 https://spring.io/blog/2022/12/16/spring-cloud-2022-0-0-codename-kilburn-has-been-released#spring-cloud-openfeign-feature-complete-announcement [Spring Cloud 2022.0.0 版本发布博客文章]中所宣布的那样,我们现在将 Spring Cloud OpenFeign 项目视为功能完整。我们只会添加错误修复,并且可能会合并一些小型社区功能 PR。我们建议迁移到 https://docs.spring.io/spring-framework/reference/integration/rest-clients.html#rest-http-interface [Spring Interface Clients]。👉点击查看详情
Spring Cloud Security 提供了一套基本原理,可用于构建安全的应用程序和服务,而无需大费周章。一种可以在外部(或集中)进行大量配置的声明式模型适合实现由协作的远程组件组成的大型系统,通常带有一个中央身份管理服务。它在像 Cloud Foundry 这样的服务平台中也极其容易使用。基于 Spring Boot 和 Spring Security OAuth2,我们可以快速创建实现常见模式(如单点登录、令牌中继和令牌交换)的系统。
Skipper 是一种工具,可让你在多个云平台上发现 Spring Boot 应用程序并管理其生命周期。你可以单独使用 Skipper,也可以将其与持续集成管道集成,以帮助实现应用程序的持续部署。
该系统设计受到 Kubernetes 生态系统中大量执行资源模板化和/或编排的项目的影响,因此有了这个受航海启发的项目名称 Skipper。
在 Skipper 中,应用程序被打包为软件包,这些软件包包含一个模板化的配置文件和一组用于填充模板的默认值。在安装或升级软件包时,你可以覆盖这些默认值。Skipper 提供了一种方法来编排不同版本的应用程序之间的升级/回滚过程,采取最少的操作集将系统带入所需状态。
Spring Cloud Sleuth 为分布式追踪提供了 Spring Boot 自动配置。
Spring Cloud Sleuth 的最后一个次要版本是 3.1。你可以查看 3.1.x 分支以获取最新提交。这个项目的核心已移至 Micrometer Tracing 项目,并且工具将移至 Micrometer 以及所有相应的项目(不再在单个存储库中完成所有工具),👉点击查看详情
Spring Cloud Stream 是一个用于构建与共享消息系统连接的高度可扩展的事件驱动微服务的框架。
该框架提供了一个基于已建立且熟悉的 Spring 习惯用法和最佳实践构建的灵活编程模型,包括对持久发布/订阅语义、消费者组和有状态分区的支持。
Spring Cloud Stream 应用程序是独立的可执行应用程序,它们通过诸如 Apache Kafka 和 RabbitMQ 这样的消息中间件进行通信。
这些应用程序可以在各种运行时平台上独立运行,包括 Kubernetes、Docker、Cloud Foundry,甚至可以在你的笔记本电脑上运行。
Spring Cloud Task 允许用户使用 Spring Cloud 开发和运行短时微服务,并在本地、云中甚至 Spring Cloud Data Flow 上运行它们。只需添加 @EnableTask 并将应用程序作为 Spring Boot 应用程序(单应用程序上下文)运行即可。
Spring Cloud Vault 是 Spring Cloud 生态系统中的一个重要项目,用于在分布式系统中安全地存储和访问配置信息。
从 Vault 中检索机密信息,并使用远程属性源初始化 Spring 环境。
获取使用 SSL 加密的机密信息。
为 MySQL、PostgreSQL、Apache Cassandra、MongoDB、Consul、AWS 和 RabbitMQ 生成凭证。
令牌、应用 ID、应用角色、客户端证书、Cubbyhole 以及 AWS EC2 和 IAM、Kubernetes 认证。
引导应用程序上下文:主应用程序的父上下文,可以经过训练来执行任何任务。
使用 HashiCorp 的 Vault 服务代理通过 Spring Cloud Vault Connector 进行 Cloud Foundry 集成。
Spring Cloud Zookeeper 通过自动配置和与 Spring Environment 及其他 Spring 编程模型习语的绑定,为 Spring Boot 应用程序提供 Apache Zookeeper 集成。只需几个简单的注解,您就能在应用程序中快速启用和配置常用模式,并使用 Zookeeper 构建大型分布式系统。提供的模式包括服务发现和分布式配置。
Spring Cloud App Broker 是一个用于构建 Spring Boot 应用程序的框架,这些应用程序实现了开放服务代理 API,以便将应用程序部署到平台上。
Open Service Broker API 项目允许开发人员为在 Cloud Foundry、Kubernetes 和 OpenShift 等云原生平台中运行的应用程序提供服务。Spring Cloud App Broker 提供了一个基于 Spring Boot 的框架,使您能够快速创建一个服务代理,在配置托管服务时将应用程序和服务部署到平台上。
目前,Cloud Foundry 被支持作为服务实例支持的应用程序和服务的目标平台。
Spring Cloud LoadBalancer 是 Spring Cloud 提供的一个客户端负载均衡器。它的主要作用是在分布式系统中,将客户端的请求均匀地分配到多个服务实例上,以提高系统的可用性、性能和吞吐量。例如,在一个微服务架构中,有多个相同服务的实例(如多个用户服务实例)运行,Load Balancer 可以根据一定的策略将请求合理地分发到这些实例上,避免某个实例负载过重,而其他实例闲置的情况。👉点击查看详情