本系列基於Spring Cloud
**Finchley SR2 &
SOFABoot 3.0.0
Spring Cloud 為開發人員提供了快速構建分散式系統中一些常見模式的工具(例如配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、一次性令牌、全域性鎖、leader選舉、分散式session、叢集狀態)。分散式系統的協調導致了樣板模式, 使用 Spring Cloud 開發人員可以快速地支援實現這些模式的服務和應用程式。它們可以在任何分散式環境中很好地工作,包括開發人員自己的膝上型電腦,裸機資料中心,以及Cloud Foundry等託管平臺。
系列文章
- SpringCloud-Eureka 服務註冊
- SpringCloud-Eureka 服務發現
- Spring Cloud-Eureka Client 原理解析
- SpringCloud-宣告式服務呼叫 Feign
- SpringCloud-負載均衡器 Ribbon
- SpringCloud-配置中心 Config
- SpringCloud-Spring Cloud Context
- 持續更新 …
Features
Spring Cloud專注於為典型用例提供良好的開箱即用體驗,併為其他使用者提供可擴充套件性機制。
- Distributed/versioned configuration
分散式/版本化配置 - Service registration and discovery
服務註冊和發現 - Routing
智慧路由 - Service-to-service calls
service-to-service呼叫 - Load balancing
負載均衡 - Circuit Breakers
斷路器 - Global locks
全域性鎖 - Leadership election and cluster state
leader選舉和叢集狀態管理 - Distributed messaging
分散式訊息
主要專案
專案名稱 | 專案職能 |
---|---|
Spring Cloud Config | Spring Cloud 提供的分散式配置中心,為外部配置提供了客戶端和服務端的支援。 |
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 |
提供Leadership選舉,如:Zookeeper, Redis, Hazelcast, Consul等常見狀態模式的抽象和實現。 |
Spring Cloud Consul |
封裝了Consul操作,consul 是一個服務發現與配置工具,與Docker容器可以無縫整合。 |
Spring Cloud Security |
基於spring security的安全工具包,為你的應用程式新增安全控制。在Zuul代理中為負載平衡的OAuth2 rest客戶端和身份驗證頭中繼提供支援。 |
Spring Cloud Sleuth |
Spring Cloud 提供的分散式鏈路跟蹤元件,相容zipkin、HTracer和基於日誌的跟蹤(ELK) |
Spring Cloud Data Flow |
大資料操作工具,作為Spring XD的替代產品,它是一個混合計算模型,結合了流資料與批量資料的處理方式。 |
Spring Cloud Stream |
資料流操作開發包,封裝了與Redis,Rabbit、Kafka等傳送接收訊息。 |
Spring Cloud CLI |
基於 Spring Boot CLI,可以讓你以命令列方式快速建立雲元件。 |
Spring Cloud OpenFeign |
一個http client客戶端,致力於減少http client客戶端構建的複雜性。 |
Spring Cloud Gateway |
Spring Cloud 提供的閘道器服務元件 |
Spring Cloud Stream App Starters |
Spring Cloud Stream App Starters是基於Spring Boot的Spring 整合應用程式,可提供與外部系統的整合。 |
Spring Cloud Task | 提供雲端計劃任務管理、任務排程。 |
Spring Cloud Task App Starters |
Spring Cloud任務應用程式啟動器是SpringBoot應用程式,它可以是任何程式,包括不會永遠執行的Spring批處理作業,並且在有限的資料處理週期後結束/停止。 |
Spring Cloud Zookeeper |
操作Zookeeper的工具包,用於使用zookeeper方式的服務發現和配置管理。 |
Spring Cloud AWS | 提供與託管的AWS整合 |
Spring Cloud Connectors |
便於雲端應用程式在各種PaaS平臺連線到後端,如:資料庫和訊息代理服務。 |
Spring Cloud Starters |
Spring Boot式的啟動專案,為Spring Cloud提供開箱即用的依賴管理。 |
Spring Cloud Contract |
Spring Cloud Contract是一個總體專案,其中包含幫助使用者成功實施消費者驅動合同方法的解決方案。 |
Spring Cloud Pipelines |
Spring Cloud Pipelines提供了一個固定意見的部署管道,其中包含確保您的應用程式可以零停機方式部署並輕鬆回滾出錯的步驟。 |
Spring Cloud Function |
Spring Cloud Function通過函式促進業務邏輯的實現。 它支援Serverless 提供商之間的統一程式設計模型,以及獨立執行(本地或PaaS)的能力。 |
SpringCloud 與 SpringBoot 版本相容關係
Release Train | Boot Version |
---|---|
Greenwich | 2.1.x |
Finchley | 2.0.x |
Edgware | 1.5.x |
Dalston | 1.5.x |
SpringCloud 與子工程版本關係
Component | Edgware.SR5 | Finchley.SR2 | Finchley.BUILD-SNAPSHOT |
---|---|---|---|
spring-cloud-aws | 1.2.3.RELEASE | 2.0.1.RELEASE | 2.0.1.BUILD-SNAPSHOT |
spring-cloud-bus | 1.3.3.RELEASE | 2.0.0.RELEASE | 2.0.1.BUILD-SNAPSHOT |
spring-cloud-cli | 1.4.1.RELEASE | 2.0.0.RELEASE | 2.0.1.BUILD-SNAPSHOT |
spring-cloud-commons | 1.3.5.RELEASE | 2.0.2.RELEASE | 2.0.2.BUILD-SNAPSHOT |
spring-cloud-contract | 1.2.6.RELEASE | 2.0.2.RELEASE | 2.0.2.BUILD-SNAPSHOT |
spring-cloud-config | 1.4.5.RELEASE | 2.0.2.RELEASE | 2.0.2.BUILD-SNAPSHOT |
spring-cloud-netflix | 1.4.6.RELEASE | 2.0.2.RELEASE | 2.0.2.BUILD-SNAPSHOT |
spring-cloud-security | 1.2.3.RELEASE | 2.0.1.RELEASE | 2.0.1.BUILD-SNAPSHOT |
spring-cloud-cloudfoundry | 1.1.2.RELEASE | 2.0.1.RELEASE | 2.0.1.BUILD-SNAPSHOT |
spring-cloud-consul | 1.3.5.RELEASE | 2.0.1.RELEASE | 2.0.2.BUILD-SNAPSHOT |
spring-cloud-sleuth | 1.3.5.RELEASE | 2.0.2.RELEASE | 2.0.2.BUILD-SNAPSHOT |
spring-cloud-stream | Ditmars.SR4 | Elmhurst.SR1 | Elmhurst.BUILD-SNAPSHOT |
spring-cloud-zookeeper | 1.2.2.RELEASE | 2.0.0.RELEASE | 2.0.1.BUILD-SNAPSHOT |
spring-boot | 1.5.16.RELEASE | 2.0.6.RELEASE | 2.0.7.BUILD-SNAPSHOT |
spring-cloud-task | 1.2.3.RELEASE | 2.0.0.RELEASE | 2.0.1.BUILD-SNAPSHOT |
spring-cloud-vault | 1.1.2.RELEASE | 2.0.2.RELEASE | 2.0.2.BUILD-SNAPSHOT |
spring-cloud-gateway | 1.0.2.RELEASE | 2.0.2.RELEASE | 2.0.2.BUILD-SNAPSHOT |
spring-cloud-openfeign | 2.0.2.RELEASE | 2.0.2.BUILD-SNAPSHOT | |
spring-cloud-function | 1.0.1.RELEASE | 1.0.0.RELEASE | 1.0.1.BUILD-SNAPSHOT |
- Finchley 構建並使用Spring Boot 2.0.x,與 Spring Boot 1.5.x 不相容。
- Dalston 和
Edgware 基於
Spring Boot 1.5.x 構建,不相容 SpringBoot 2.0.x - Camden 版本迭代正式結束,Dalston
將於2018年12月結束使用,Edgware 將遵循 Spring Boot 1.5.x 的生命週期結束。 - Camden 基於SpringBoot 1.4.x 構建,但是也會支援 1.5.x 版本
- Brixton 和 Angel 迭代結束時間是2017年7月,Brixton 基於SpringBoot 1.3.x ,同時也支援
1.4.x 版本 - Angel 基於 SpringBoot 1.2.x ,在某些方式不相容 SpringBoot 1.3.x 。
- Brixton 構建在SpringBoot 1.3.x ,不相容
SpringBoot 1.2.x 。一些基於Angel的庫和大多數應用程式可以在Brixton上正常執行,但如果OAuth2具備spring-cloud-security 1.0的特性,則需要在任何地方進行更改。x被使用(它們大多在1.3.0中被移到Spring Boot中)。