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及其依賴項的版本是不可能的,或者至少是不可靠的。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM