简介
Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,决策选举,分布式会话,集群状态)。
分布式系统的协调导致样板模式,使用Spring Cloud开发人员可以快速实现这些模式的服务和应用程序。它们适用于任何分布式环境,包括开发人员自己的笔记本电脑,裸机数据中心和Cloud Foundry等托管平台。
特征
Spring Cloud专注于为典型用例提供良好的开箱即用体验,并为其他用户提供可扩展性机制。
- 分布式/版本化配置
- 服务注册、服务发现
- 智能路由
- 服务到服务调用
- 负载均衡
- 断路器
- 全局锁
- 决策选举、集群状态
- 分布式会话
Spring Cloud采用一种非常具有声明性的方法,通常只需更改类路径或注解即可获得大量的fetnaures。作为发现客户端的示例应用程序:
@SpringBootApplication
@EnableDiscoveryClient //启用客户端发现
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Spring Cloud主要子项目
- Spring cloud Config(版本化配置管理)
由git存储库支持的集中式外部配置管理。配置资源直接映射到Spring的Environment,但如果需要,可以由非Spring应用程序使用。 - Spring Cloud Netflix
与各种Netflix OSS组件集成(Eureka,Hystrix,Zuul,Archaius等)。 - Spring Cloud Bus(控制总线)
用于将服务和服务实例与分布式消息传递链接在一起的事件总线,用于在群集中传播状态更改(例如,配置更改事件)。 - Spring Cloud Cloudfoundry(服务发现)
使用Pivotal Cloud Foundry集成应用程序。提供服务发现实现,还可以轻松实现受SSO和OAuth2保护的资源。 - Spring Cloud Open Service Broker(开放式服务代理器)
提供构建实现Open Service Broker API的服务代理的起点。 - Spring Cloud Cluster(集群)
使用Zookeeper,Redis,Hazelcast,Consul的抽象和实现进行决策选举和共同的有状态模式 - Spring Cloud Consul(服务发现、配置管理)
使用Hashicorp Consul进行服务发现和配置管理。 - Spring Cloud Security
为Zuul代理中的负载平衡OAuth2 rest客户端和身份验证头中继提供支持。 - Spring Cloud Sleuth
Spring Cloud应用程序的分布式跟踪,与Zipkin,HTrace和基于日志(例如ELK)的跟踪兼容。 - Spring Cloud Data Flux
适用于现代运行时的可组合微服务应用程序的云本机编排服务。易于使用的DSL,拖放式GUI和REST-API共同简化了基于微服务的数据管道的整体编排。 - Spring Cloud Stream
轻量级事件驱动的微服务框架,可快速构建可连接到外部系统的应用程序。在Spring Boot应用程序之间使用Apache Kafka或RabbitMQ发送和接收消息的简单声明模型。 - Spring Cloud Stream App Starters
Spring Cloud Stream App Starters是基于Spring Boot的Spring Integration应用程序,可提供与外部系统的集成。 - 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 AWS
与托管的Amazon Web Services轻松集成。它提供了一种使用众所周知的Spring习语和API(如消息传递或缓存API)与AWS提供的服务进行交互的便捷方式。开发人员可以围绕托管服务构建应用程序,而无需关心基础结构或维护。 - Spring Cloud Connectors
使各种平台中的PaaS应用程序可以轻松连接到数据库和消息代理(该项目以前称为“Spring Cloud”)等后端服务。 - Spring Cloud Starters
Spring Boot风格的入门项目,可以简化Spring Cloud用户的依赖管理。(作为项目停止并在Angel.SR2之后与其他项目合并。) - Spring Cloud CLI
Spring Boot CLI插件,用于在Groovy中快速创建Spring Cloud组件应用程序 - Spring Cloud Contract
Spring Cloud Contract是一个总体项目,其中包含帮助用户成功实施消费者驱动合同方法的解决方案。 - Spring Cloud Gateway(智能路由)
Spring Cloud Gateway是一款基于Project Reactor的智能可编程路由器。 - Spring Cloud OpenFeign
Spring Cloud OpenFeign通过自动配置和Spring环境以及其他Spring编程模型习惯用法提供Spring Boot应用程序的集成。 - Spring Cloud Pipelines
Spring Cloud Pipelines提供了一个固定意见的部署管道,其中包含确保您的应用程序可以零停机方式部署并轻松回滚出错的步骤。 - Spring Cloud Function
Spring Cloud Function通过函数促进业务逻辑的实现。它支持无服务器提供商之间的统一编程模型,以及独立运行(本地或PaaS)的能力。
总结
Spring Cloud提供了简单快速开发分布式系统的工具,即Spring Cloud子项目。实现了文章上面提到的多个便捷特性。