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 Steam
輕量級的事件驅動型微服務框架,用於快速構建可以連接到外部系統的應用程序。在Spring Boot應用程序之間使用Apache Kafka或RabbitMQ發送和接收消息的簡單聲明性模型。
Spring Cloud Stream App Starters
Spring Cloud Stream App Starters是基於Spring Boot的Spring Integration應用程序,可與外部系統集成。
Spring Cloud Task App Starters
Spring Cloud Task App Starters是Spring Boot應用程序,可以是任何進程,包括不會永遠運行的Spring Batch作業,它們在有限的數據處理週期後結束/停止。
Spring Cloud Starters
Spring Boot風格的啓動程序項目可以簡化Spring Cloud使用者的依賴關係管理。(作爲一個項目停產,並在Angel.SR2之後與其他項目合併。)
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”是數字。
發佈火車 | 開機版本 |
---|---|
霍克斯頓 |
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的版本及其依賴關係成爲不可能,或者至少是不可靠的。 |