好久沒有研究 Spring Cloud 了,也沒有關注它的更新及新特性,上官網看了下,又增加了幾個版本,有正式版有預覽版,多達 6 個版本,實在讓人蒙逼。
而我們的項目版本還儀停留在 Dalston SR1 版本。
Spring Cloud 的多版本
image
這麼多不同的版本,它們都有什麼差別,我們開發微服務到底使用哪一個版本呢?這些版本與 Spring Boot 版本又是一個怎樣的依賴關系?帶着這些問題,我們必須把它一一搞清楚,不然總會讓你很頭疼。。
首先 Spring Cloud 是一個由很多子項目組成的龐大項目,Spring Cloud 的主要項目如下:
Spring Cloud Config
Spring Cloud Netflix
Spring Cloud Bus
Spring Cloud Cluster
Spring Cloud Security
...
更多請參考官方說明:
https://projects.spring.io/spring-cloud/
然而,這些子項目都有不同的釋出階段,為了管理主項目和子項目的依賴關系,以及為了避免和子項目版本的沖突和誤解,主項目版本命名并沒有采用和子項目數字版本化的形式,而是采用了英文名稱。
英文命名方式也比較有意思,Spring Cloud 采用了英國倫敦地鐵站的名稱來命名,并由地鐵站名稱字母A-Z依次類推的形式來釋出疊代版本。
由上可知,Spring Cloud 的第一個版本 "Angel" 就不覺得奇怪了,接着 "Brixton" 就是第二個版本。當一個項目到達釋出臨界點或者解決了一個嚴重的BUG後就會釋出一個 "service Release" 版本, 簡稱 SR(X)版本,x 代表一個遞增數字。
由此我們可以得出 "Finchley M9" 就是目前最新的開發版本,"Edgware SR3" 是最新穩定版本。
Spring Cloud 版本依賴關系
下圖揭示了主項目和子項目版本的依賴關系。
Spring Cloud & Spring Boot 依賴關系
- Finchley 是基于 Spring Boot 2.0.x 建構的,不支援 Spring Boot 1.5.x
- Dalston 和 Edgware 是基于 Spring Boot 1.5.x 建構的,不支援 Spring Boot 2.0.x
- Camden 建構于 Spring Boot 1.4.x,但依然能支援 Spring Boot 1.5.x
注意:Brixton 和 Angel 版本在2017年7月已經停止更新疊代了,我們就不關注它的版本依賴關系了。
Spring Cloud 正處理高速發展期,版本釋出更新太快,項目更新版本還要考慮相容性等各種問題,讓人很頭疼!後續我會慢慢揭開這些面紗。。
推薦:
Spring Boot & Cloud 最強技術教程掃描關注我們的微信公衆号,幹貨每天更新。