1. Spring Cloud Greenwich SR2 概览

 

Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.

 

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

功能

Spring Cloud focuses on providing good out of box experience for typical use cases and extensibility mechanism to cover others.

  • Distributed/versioned configuration

  • Service registration and discovery

  • Routing

  • Service-to-service calls

  • Load balancing

  • Circuit Breakers

  • Global locks

  • Leadership election and cluster state

  • Distributed messaging

Spring Cloud专注于为典型用例提供良好的开箱即用体验,并为其他用户提供可扩展性机制。

  • 分布式/版本化配置
  • 服务注册和发现
  • 路由
  • 服务到服务调用
  • 负载均衡
  • 断路器
  • 全局锁
  • 领导选举和集群状态
  • 分布式消息

Spring Cloud takes a very declarative approach, and often you get a lot of features with just a classpath change and/or an annotation. Example application that is a discovery client:

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

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

 主要项目

Spring Cloud Config

Centralized external configuration management backed by a git repository. The configuration resources map directly to Spring Environment but could be used by non-Spring applications if desired.

 由git存储库支持的集中式外部配置管理。 配置资源直接映射到Spring Environment,但如果需要,可以由非Spring应用程序使用。

Spring Cloud Netflix

Integration with various Netflix OSS components (Eureka, Hystrix, Zuul, Archaius, etc.).

与各种Netflix OSS组件集成(Eureka,Hystrix,Zuul,Archaius等)。

Spring Cloud Bus

 An event bus for linking services and service instances together with distributed messaging. Useful for propagating state changes across a cluster (e.g. config change events).

用于将服务和服务实例与分布式消息传递链接在一起的事件总线 用于在群集中传播状态更改(例如,配置更改事件)。

Spring Cloud Cloudfoundry

Integrates your application with Pivotal Cloud Foundry. Provides a service discovery implementation and also makes it easy to implement SSO and OAuth2 protected resources.

将您的应用程序与Pivotal Cloud Foundry集成。 提供服务发现实现,还可以轻松实现受SSO和OAuth2保护的资源。

Spring Cloud Open Service Broker

Provides a starting point for building a service broker that implements the Open Service Broker API.

提供构建实现Open Service Broker API的服务代理的起点。

Spring Cloud Cluster

 Leadership election and common stateful patterns with an abstraction and implementation for Zookeeper, Redis, Hazelcast, Consul.

领导者选举和共同的有状态模式与Zookeeper,Redis,Hazelcast,Consul的抽象和实现。

Spring Cloud Consul

 Service discovery and configuration management with Hashicorp Consul

Hashicorp Consul的服务发现和配置管理。

Spring Cloud Security

Provides support for load-balanced OAuth2 rest client and authentication header relays in a Zuul proxy.

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

Spring Cloud Sleuth

 Distributed tracing for Spring Cloud applications, compatible with Zipkin, HTrace and log-based (e.g. ELK) tracing.

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

Spring Cloud Data Flow

 A cloud-native orchestration service for composable microservice applications on modern runtimes. Easy-to-use DSL, drag-and-drop GUI, and REST-APIs together simplifies the overall orchestration of microservice based data pipelines.

 适用于现代运行时的可组合微服务应用程序的云本机编排服务。 易于使用的DSL,拖放式GUI和REST-API共同简化了基于微服务的数据管道的整体编排。

Spring Cloud Stream

A lightweight event-driven microservices framework to quickly build applications that can connect to external systems. Simple declarative model to send and receive messages using Apache Kafka or RabbitMQ between Spring Boot apps.

轻量级事件驱动的微服务框架,可快速构建可连接到外部系统的应用程序。 在Spring Boot应用程序之间使用Apache Kafka或RabbitMQ发送和接收消息的简单声明模型。

Spring Cloud Stream App Starters

Spring Cloud Stream App Starters are Spring Boot based Spring Integration applications that provide integration with external systems.

Spring Cloud Stream App Starters是基于Spring Boot的Spring Integration应用程序,可提供与外部系统的集成。

Spring Cloud Task

A short-lived microservices framework to quickly build applications that perform finite amounts of data processing. Simple declarative for adding both functional and non-functional features to Spring Boot apps.

一种短命的微服务框架,用于快速构建执行有限数据处理的应用程序。 用于向Spring Boot应用程序添加功能和非功能功能的简单声明。

Spring Cloud Task App Starters

Spring Cloud Task App Starters are Spring Boot applications that may be any process including Spring Batch jobs that do not run forever, and they end/stop after a finite period of data processing.

 Spring Cloud Task App Starters是Spring Boot应用程序,可能是任何进程,包括不能永久运行的Spring Batch作业,它们在有限的数据处理期后结束/停止。

Spring Cloud Zookeeper

 Service discovery and configuration management with Apache Zookeeper.

 使用Apache Zookeeper进行服务发现和配置管理。

Spring Cloud AWS

Easy integration with hosted Amazon Web Services. It offers a convenient way to interact with AWS provided services using well-known Spring idioms and APIs, such as the messaging or caching API. Developers can build their application around the hosted services without having to care about infrastructure or maintenance.

与托管的Amazon Web Services轻松集成。 它提供了一种使用众所周知的Spring习语和API(如消息传递或缓存API)与AWS提供的服务进行交互的便捷方式。 开发人员可以围绕托管服务构建应用程序,而无需关心基础结构或维护。

Spring Cloud Connectors

Makes it easy for PaaS applications in a variety of platforms to connect to backend services like databases and message brokers (the project formerly known as "Spring Cloud").

使各种平台中的PaaS应用程序可以轻松连接到数据库和消息代理(该项目以前称为“Spring Cloud”)等后端服务。

Spring Cloud Starters

Spring Boot-style starter projects to ease dependency management for consumers of Spring Cloud. (Discontinued as a project and merged with the other projects after Angel.SR2.)

 Spring Boot风格的入门项目,可以简化Spring Cloud用户的依赖管理。 (作为项目停止并在Angel.SR2之后与其他项目合并。)

Spring Cloud CLI

Spring Boot CLI plugin for creating Spring Cloud component applications quickly in Groovy

Spring Boot CLI插件,用于在Groovy中快速创建Spring Cloud组件应用程序

Spring Cloud Contract

Spring Cloud Contract is an umbrella project holding solutions that help users in successfully implementing the Consumer Driven Contracts approach.

Spring Cloud Contract是一个总体项目,其中包含帮助用户成功实施消费者驱动合同方法的解决方案。

Spring Cloud Gateway

Spring Cloud Gateway is an intelligent and programmable router based on Project Reactor.

 Spring Cloud Gateway是一款基于Project Reactor的智能可编程路由器。

Spring Cloud OpenFeign

 Spring Cloud OpenFeign provides integrations for Spring Boot apps through autoconfiguration and binding to the Spring Environment and other Spring programming model idioms.

Spring Cloud OpenFeign通过自动配置和Spring环境以及其他Spring编程模型习惯用法提供Spring Boot应用程序的集成。

Spring Cloud Pipelines

Spring Cloud Pipelines provides an opinionated deployment pipeline with steps to ensure that your application can be deployed in zero downtime fashion and easilly rolled back of something goes wrong.

Spring Cloud Pipelines提供了一个固定意见的部署管道,其中包含确保您的应用程序可以零停机方式部署并轻松回滚出错的步骤。

Spring Cloud Function

Spring Cloud Function promotes the implementation of business logic via functions. It supports a uniform programming model across serverless providers, as well as the ability to run standalone (locally or in a PaaS).

Spring Cloud Function通过函数促进业务逻辑的实现。 它支持无服务器提供商之间的统一编程模型,以及独立运行(本地或PaaS)的能力。

版本发布说明

Spring Cloud is an umbrella project consisting of independent projects with, in principle, different release cadences. To manage the portfolio a BOM (Bill of Materials) is published with a curated set of dependencies on the individual project (see below). The release trains have names, not versions, to avoid confusion with the sub-projects. The names are an alphabetic sequence (so you can sort them chronologically) with names of London Tube stations ("Angel" is the first release, "Brixton" is the second). When point releases of the individual projects accumulate to a critical mass, or if there is a critical bug in one of them that needs to be available to everyone, the release train will push out "service releases" with names ending ".SRX", where "X" is a number.

Spring Cloud是一个由独立项目组成的总体项目,原则上具有不同的发布节奏。 为了管理投资组合,发布了BOM(物料清单),其中包含一组针对单个项目的依赖关系(见下文)。 发布列车有名称而不是版本,以避免与子项目混淆。 名称是字母序列(因此您可以按时间顺序对它们进行排序)使用伦敦地铁站的名称(“天使”是第一个版本,“布里克斯顿”是第二个版本)。 当各个项目的点数累积到临界质量时,或者其中一个项目中存在一个需要每个人都可用的关键错误时,发布序列将推出名称结尾为“.SRX”的“服务版本”, 其中“X”是一个数字。

Spring Cloud Version Spring Boot Version 
Hoxton 2.2.x
Greenwich 2.1x
Finchley 2.0.x
Edgware 1.5.x
Dalston 1.5.x

 

Greenwich builds and works with Spring Boot 2.1.x, and is not expected to work with Spring Boot 1.5.x.

Greenwich构建并与Spring Boot 2.1.x一起使用,预计不适用于Spring Boot 1.5.x.

Note: The Dalston release train will reach end-of-life in December 2018. Edgware will follow the end-of-life cycle of Spring Boot 1.5.x.

注意:Dalston发布列车将于2018年12月达到使用寿命.Edgware将遵循Spring Boot 1.5.x的生命周期结束周期。

The Dalston and Edgware release trains build on Spring Boot 1.5.x, and are not expected to work with Spring Boot 2.0.x.

Dalston和Edgware发布版基于Spring Boot 1.5.x构建,预计不会与Spring Boot 2.0.x一起使用。

 Use your dependency management tools to control the version. If you are using Maven remember that the first version declared wins, so declare the BOMs in order, with the first one usually being the most recent (e.g. if you want to use Spring Boot 1.3.6 with Brixton.RELEASE, put the Boot BOM first). The same rule applies to Gradle if you use the Spring dependency management plugin.

使用依赖关系管理工具来控制版本。 如果您正在使用Maven,请记住声明的第一个版本获胜,因此按顺序声明BOM,第一个通常是最新版本(例如,如果您想使用带有Brixton.RELEASE的Spring Boot 1.3.6,请使用引导BOM 第一)。 如果您使用Spring依赖关系管理插件,则同样的规则适用于Gradle。

 

Note
The release train contains a spring-cloud-dependencies as well as the spring-cloud-starter-parent. You can use the parent as you would the spring-boot-starter-parent (if you are using Maven). If you only need dependency management, the "dependencies" version is a BOM-only version of the same thing (it just contains dependency management and no plugin declarations or direct references to Spring or Spring Boot). If you are using the Spring Boot parent POM, then you can use the BOM from Spring Cloud. The opposite is not true: using the Cloud parent makes it impossible, or at least unreliable, to also use the Boot BOM to change the version of Spring Boot and its dependencies.

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

 

 

 

 

posted @ 2019-08-19 17:55  技术宅星云  阅读(1968)  评论(0编辑  收藏  举报