Spring Cloud

格林威治SR3

Spring Cloud为开发人员提供了工具,可快速构建分布式系统中的一些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态)。分布式系统的协调导致样板式样,并且使用Spring Cloud开发人员可以快速站起来实现这些样板的服务和应用程序。它们将在任何分布式环境中都能很好地工作,包括开发人员自己的笔记本电脑,裸机数据中心以及诸如Cloud Foundry之类的托管平台。

特征

Spring Cloud专注于为典型的用例和可扩展性机制(包括其他用例)提供良好的开箱即用体验。

  • 分布式/版本化配置

  • 服务注册和发现

  • 路由

  • 服务到服务的通话

  • 负载均衡

  • 断路器

  • 全局锁

  • 领导选举和集群状态

  • 分布式消息传递

Spring Cloud采用了一种非常声明性的方法,通常只需更改类路径和/或注释即可获得许多功能。作为发现客户端的示例应用程序:

@SpringBootApplication
@EnableDiscoveryClient
public class Application {
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

主要项目

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安全性

为Zuul代理中的负载平衡的OAuth2其余客户端和身份验证标头中继提供支持。

Spring Cloud Sleuth

Spring Cloud应用程序的分布式跟踪,与Zipkin,HTrace和基于日志的(例如ELK)跟踪兼容。

Spring Cloud Data Flow

针对现代运行时可组合微服务应用程序的云原生编排服务。易于使用的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 Environment和其他Spring编程模型惯用法为Spring Boot应用程序提供集成。

Spring Cloud Pipelines

Spring Cloud Pipelines提供了一个可靠的部署管道,其中包含一些步骤,以确保您的应用程序可以零停机时间进行部署,并且可以轻松回滚某些错误。

spring-cloud-function

Spring Cloud Function通过功能促进业务逻辑的实现。它支持跨无服务器提供程序的统一编程模型,以及独立运行(本地或在PaaS中)的功能。

发布火车

Spring Cloud是一个总括项目,由原则上具有不同发布节奏的独立项目组成。为了管理项目组合,将发布BOM(物料清单),并带有对单个项目的精选依赖关系集(请参见下文)。发行列车使用名称而不是版本,以避免与子项目混淆。名称是按字母顺序排列的(因此您可以按时间顺序对它们进行排序),带有伦敦地铁站的名称(“ Angel”是第一个发行版,“ Brixton”是第二个发行版)。当各个项目的点发布累积到一定数量时,或者如果其中一个关键错误需要所有人使用,则发布系列将推出名称以“。”结尾的“服务发布”。SRX”,其中“ X”是数字。

表格1。发行版Spring Boot兼容性
发布火车 开机版本

霍克斯顿

2.2.x

格林威治

2.1.x

芬奇利

2.0.x

埃奇韦尔

1.5.x

达斯顿

1.5.x

表2。发布火车内容
零件 Edgware。SR6 格林威治。SR2 格林威治。建立快照

Spring Cloud

1.2.4。发布

2.1.2。发布

2.1.3。建立快照

spring-cloud-bus

1.3.4。发布

2.1.2。发布

2.1.3。建立快照

spring-cloud-cli

1.4.1。发布

2.0.0。发布

2.0.1。建立快照

spring-cloud-commons

1.3.6。发布

2.1.2。发布

2.1.3。建立快照

spring-cloud-contract

1.2.7。发布

2.1.2。发布

2.1.3。建立快照

spring-cloud-config

1.4.7。发布

2.1.3。发布

2.1.4。建立快照

spring-cloud-netflix

1.4.7。发布

2.1.2。发布

2.1.3。建立快照

spring-cloud-security

1.2.4。发布

2.1.3。发布

2.1.4。建立快照

spring-cloud-cloudfoundry

1.1.3。发布

2.1.2。发布

2.1.3。建立快照

spring-cloud-consul

1.3.6。发布

2.1.2。发布

2.1.3。建立快照

spring-cloud-sleuth

1.3.6。发布

2.1.1。发布

2.1.2。建立快照

spring-cloud-stream

Ditmars。SR5

Fishtown。SR3

Fishtown。建立快照

spring-cloud-zookeeper

1.2.3。发布

2.1.2。发布

2.1.3。建立快照

spring-boot

1.5.21。发布

2.1.5。发布

2.1.8。建立快照

spring-cloud-task

1.2.4。发布

2.1.2。发布

2.1.3。建立快照

spring-cloud-vault

1.1.3。发布

2.1.2。发布

2.1.3。建立快照

spring-cloud-gateway

1.0.3。发布

2.1.2。发布

2.1.3。建立快照

spring-cloud-openfeign

2.1.2。发布

2.1.3。建立快照

spring-cloud-function

1.0.2。发布

2.0.2。发布

2.0.3。建立快照

Greenwich可以构建并与Spring Boot 2.1.x一起使用,并且不能与Spring Boot 1.5.x一起使用。

注意:Dalston发行列车将于2018年12月到期 。Edgware将遵循Spring Boot 1.5.x的生命周期终止。

Dalston和Edgware发行列车建立在Spring Boot 1.5.x上,并且不能与Spring Boot 2.0.x一起使用。

注意
卡姆登发行机车已报废

Camden发布系列基于Spring Boot 1.4.x构建,但也已在1.5.x上进行了测试。

注意
2017年7月,布里克斯顿(Brixton)和天使(Angel)发行列车被标记为报废 (EOL)。

Brixton发布系列基于Spring Boot 1.3.x构建,但也已在1.4.x上进行了测试。

Angel发布系列基于Spring Boot 1.2.x构建,并且在某些方面与Spring Boot 1.3.x不兼容。Brixton建立在Spring Boot 1.3.x之上,并且与1.2.x不兼容。一些库和大多数基于Angel构建的应用程序都可以在Brixton上正常运行,但是在使用spring-cloud-security 1.0.x的OAuth2功能的任何地方都需要进行更改(它们大多已在1.3.0中移至Spring Boot)。

使用依赖性管理工具来控制版本。如果您使用的是Maven,请记住第一个声明为win的版本,因此请按顺序声明BOM,第一个通常是最新的(例如,如果您想在Brixton中使用Spring Boot 1.3.6。释放,将引导BOM放在第一位。如果您使用Spring依赖管理插件,则同样的规则适用于Gradle。

注意
发布火车包含spring-cloud-dependencies以及spring-cloud-starter-parent 。您可以像使用spring-boot-starter-parent一样使用spring-boot-starter-parent (如果使用的是Maven)。如果仅需要依赖项管理,则“依赖项”版本是同一事物的仅BOM表版本(它仅包含依赖项管理,没有插件声明或对Spring或Spring Boot的直接引用)。如果您使用的是Spring Boot父POM,则可以使用Spring Cloud中的BOM。相反,事实并非如此:使用Cloud父级使使用Boot BOM更改Spring Boot的版本及其依赖关系成为不可能,或者至少是不可靠的。

讲座和视频

快速开始

使用Spring Initializr引导您的应用程序。

文献资料

每个Spring项目都有自己的项目 。它解释很详细,你可以如何使用项目的功能 ,哪些是你可以与他们实现。
格林威治SR3 电流 GA 参考文件 API文件
霍克斯顿M3 PRE 参考文件 API文件
霍克斯顿 快照 参考文件 API文件
格林威治 快照 参考文件 API文件
芬奇利SR4 GA 参考文件 API文件