Spring Cloud 全家桶 入門介紹

Spring Cloud 全家桶 入門介紹

 

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 Security 

爲Zuul代理中的負載平衡的OAuth2其餘客戶端和身份驗證標頭中繼提供支持。

 

Spring Cloud Sleuth

Spring Cloud應用程序的分佈式跟蹤,與Zipkin,HTrace和基於日誌(例如ELK)的跟蹤兼容。

 

Spring Cloud Data Flow 

針對現代運行時可組合微服務應用程序的雲原生編排服務。易於使用的DSL,拖放式GUI和REST-API共同簡化了基於微服務的數據管道的總體編排。

 

Spring Cloud Steam

輕量級的事件驅動型微服務框架,用於快速構建可以連接到外部系統的應用程序。在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 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中)的功能。

 

Release Trains

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

Greenwich可以構建並與Spring Boot 2.1.x一起使用,並且不能與Spring Boot 1.5.x一起使用。

注:達爾斯頓發佈列車將達到最終的壽命在2018年十二月埃奇韋爾將遵循春季啓動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,第一個通常是最新的(例如,如果您想將Spring Boot 1.3.6與Brixton.RELEASE一起使用,則將Boot BOM放入)第一)。如果您使用Spring依賴管理插件,則同樣的規則適用於Gradle。

發行火車包含 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的版本及其依賴關係成爲不可能,或者至少是不可靠的。

 

Talks and Videos

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章