大家好,我是棧長。 經過 Spring Cloud Alibaba 2022 的第一個候選版本 2022.0.0.0-RC1 發佈 7 個多月後,中間還有一個 2022.0.0.0-RC2 版本,就在前幾天,**Spring Cloud Alibaba 2022.0.0.0 正式版** 終於正式發佈 ...
大家好,我是棧長。
經過 Spring Cloud Alibaba 2022 的第一個候選版本 2022.0.0.0-RC1 發佈 7 個多月後,中間還有一個 2022.0.0.0-RC2 版本,就在前幾天,Spring Cloud Alibaba 2022.0.0.0 正式版 終於正式發佈了。
Spring Cloud Alibaba 2022.0.0.0
依賴更新
由於 Spring Boot 各個版本之間變化非常大,特別是 Spring Boot 2.4 和 3.0 版本,所以 Spring Cloud Alibaba 以 Spring Boot 3.0 和 2.4 為分界線,同時維護了 2022.x、2021.x、2.2.x 三個版本分支。
Spring Cloud Alibaba 版本基礎依賴如下:
Spring Cloud Alibaba | Spring Cloud | Spring Boot | JDK |
---|---|---|---|
2022.0.0.0 | Spring Cloud 2022.0.0 | 3.0.2 | 17+ |
2021.0.5.0 | 2021.0.5 | 2.6.13 | 8+ |
2021.0.4.0 | Spring Cloud 2021.0.4 | 2.6.11 | 8+ |
2021.0.1.0 | Spring Cloud 2021.0.1 | 2.6.3 | 8+ |
2.2.9.RELEASE | Spring Cloud Hoxton.SR12 | 2.3.12.RELEASE | 8+ |
Spring Cloud Alibaba 2022.0.0.0 主要適配了 Spring Cloud 2022.0.0、Spring Boot 3.0、JDK 17,這四個技術其實是相互依賴的關係,前者是基於後者的構建,其中任何一個技術的版本都不能隨意更換。
Spring Cloud Alibaba 的版本號是跟 Spring Cloud 版本走的,但不會每個版本同步更新,比如 Spring Cloud Alibaba 並沒有同步 Spring Cloud 2021.0.2, 2021.0.3 版本。
Spring Cloud Alibaba 的版本號說明:
版本前 3 位是 Spring Cloud 版本號,最後一位為擴展版本號。
比如適配 Spring Cloud 2022.0.0 版本對應的 Spring Cloud Alibaba 第一個版本為:2022.0.0.0,第個二版本為:2022.0.0.1,依此類推。
組件更新
Spring Cloud Alibaba 不同的版本,其適配的各個底層組件版本也可能不同,依賴的各個組件版本如下:
Spring Cloud Alibaba | Sentinel | Nacos | RocketMQ | Seata |
---|---|---|---|---|
2022.0.0.0 | 1.8.6 | 2.2.1 | 4.9.4 | 1.7.0 |
2021.0.5.0 | 1.8.6 | 2.2.0 | 4.9.4 | 1.6.1 |
2021.0.4.0 | 1.8.5 | 2.0.4 | 4.9.4 | 1.5.2 |
2021.0.1.0 | 1.8.3 | 1.4.2 | 4.9.2 | 1.4.2 |
2.2.9.RELEASE | 1.8.5 | 2.1.0 | 4.9.4 | 1.5.2 |
Spring Cloud Alibaba 2022.0.0.0 更新最大的組件是 Nacos 和 Seata,更新會存在一定的相容性問題。
其他細節更新
還有大量細節更新,棧長這裡就不一一列出了,感興趣的可以閱讀底部的官方發佈說明,2022.0.0.0 版本的內容更新主要涉及三個版本,包括候選版本,正式版本發佈說明沒有包含全部更新內容。
個人認為 2022.0.0.0 版本最大的功能是對靜態編譯的支持,在適配 Spring Boot 3.0 以後,使用基於 GraalVM 構建原生應用鏡像,各方面都要直接起飛。
GraalVM 是什麼?
GraalVM 是一個跨語言的通用虛擬機,不僅支持了 Java、Scala、Groovy、Kotlin 等基於 JVM 的語言,以及 C、C++ 等基於 LLVM 的語言,還支持其他像 JavaScript、Ruby、Python 和 R 語言等。
GraalVM 可用來代替 JVM,它通過預先編譯(Ahead Of Time,AOT)等技術對 Java 應用進行預先編譯,讓 Java 應用啟動速度更快、占用記憶體更低、體積也更小。
下麵是 Spring Cloud Alibaba 官方做的測試:
測試環境:
- macOS 11.4
- 2.6 GHz 6-Core Intel Core i7 處理器
- 16G 記憶體
主要測試啟動速度和運行時占用記憶體,分別模擬 3 次取平均值。
從上述測試結果可發現,最新支持 Spring Boot 3.0 基於 GraalVM 的 Spring Cloud Alibaba 應用,不管是在啟動速度,還是在記憶體占用,以及在應用包大小方面,都得到顯著降低。
拿服務註冊和服務消費的測試結果對比:
基於 GraalVM 的應用啟動速度提升了近 10 倍,運行時記憶體占用比原來降低了近 2/3,效果非常明顯。
所以,適配 Spring Boot 3.0 發佈後,基於 Spring Cloud Alibaba 的雲原生應用直接起飛了,可以幫助企業更快地進行彈性擴縮容和降低雲成本。
Spring Cloud Alibaba 科普
還有很多人搞不清楚 Spring Cloud Alibaba、Spring Cloud,它們到底有什麼關係,棧長今天給大家科普一下。
1、Spring Cloud Alibaba 是什麼?
Spring Cloud Alibaba 是微服務開發一站式解決方案,由阿裡巴巴開源,它包含開發分散式應用的必需組件,方便開發者通過 Spring Cloud 編程模型輕鬆使用這些組件來開發分散式應用服務。
Spring Cloud Alibaba 也早就成為了 Spring Cloud 的官方子項目:
通過 Spring Cloud Alibaba,只需要添加一些註解和少量配置,就可以將 Spring Cloud 應用接入阿裡分散式應用解決方案,通過阿裡中間件來迅速搭建分散式應用系統。
2、Spring Cloud Alibaba 和 Spring Cloud、Spring Cloud Netflix 有什麼關係?
- Spring Cloud: 這是 Spring 官方提供的一套分散式應用開發標準框架,也可以理解為一套微服務開發的統一抽象編程模型。
- Spring Cloud Netflix: 這是最早期的 Spring Cloud 微服務框架,它基於 Spring Cloud 編程模型整合了許多 Netflix 公司的開源組件,比如:Eureka、Ribbon、Zuul、Hystrix 等,現在它們大多都已經停止維護了。
- Spring Cloud Alibaba: 這是阿裡巴巴基於 Spring Cloud 編程模型開源的微服務框架,整合了各種阿裡巴巴微服務開源組件,比如:Nacos、RocketMQ、Sentinel、Seata 等。
說白點,Spring Cloud 提供了一套微服務開發的統一抽象編程模型,即制定一個標準,Spring Cloud Netflix 和 Spring Cloud Alibaba 都是基於該抽象編程模型的實現,並集成了自家的開源組件,以實現微服務開發的各個環節。
3、學習哪個 Spring Cloud 比較好?
除了以上介紹的那三種,市面上我知道的還有騰訊開源的 Spring Cloud Tencent,不過還比較年輕,需要市場的檢驗。
Spring Cloud Netflix 雖然起步早,但是後面各種組件都停止維護了,版本更新和組件替換、相容等都是個大問題,不太建議再繼續學習了。
所以,學習 Spring Cloud Alibaba 是目前最正確的姿勢:
- Spring Cloud Alibaba 基於 Spring Cloud 構建,只是提供了對 Alibaba 組件的封裝而已,比如:Nacos、Sentinel 等,其最頂層的抽象還是 Spring Cloud,所以學習 Spring Cloud Alibaba 就是學習 Spring Cloud。
- Spring Cloud Alibaba 作為 Spring Cloud 的官方頂級項目,也是國內最強微服務框架及事實上的標準,沒有之一。
好了,今天的分享就到這裡了,後續棧長也會繼續關註並分享更多的 Java 技術乾貨,關註公眾號Java技術棧第一時間推送。
版權聲明: 本文系公眾號 "Java技術棧" 原創,轉載、引用本文內容請註明出處,抄襲、洗稿一律投訴侵權,後果自負,並保留追究其法律責任的權利。
參考文檔:
- https://github.com/alibaba/spring-cloud-alibaba/wiki
- https://github.com/alibaba/spring-cloud-alibaba/releases/
- https://sca.aliyun.com/zh-cn/docs/2022.0.0.0/overview/roadmap/graalvm-adapter/graalvm
課程推薦
在公眾號分享技術之餘,棧長花了大部分休息時間打造了的最新《Spring Cloud Alibaba 微服務實戰課》,一經推出,好評如潮,課程幾乎覆蓋了 Spring Cloud Alibaba 所有操作!!!
已全部完結,可隨時報名學習全部內容。
最近棧長又花了不少時間更新到了第三期,乾貨滿滿,包括適配最新的 Spring Cloud Alibaba 2022.0.0.0 版本,課程其他內容也升級、加強了,比如 Nacos 配置加解密、OAuth 2 版本更新等,一次訂閱,永久免費提供更新。
總之,如果你想系統學習 Spring Cloud 微服務體系,想學習微服務項目架構設計,以及各種主流框架、中間件的銜接和運用,這個課程正適合你。學完直接把各種微服務技術寫到簡歷里,面試跳槽談薪水時會更有底氣。
早訂閱的小伙伴,一路學習跟過來,就知道有多值了,不要亂學老舊的微服務技術了,浪費時間,和棧長學習最新的 Spring Cloud 微服務技術,少走彎路。
避免無效溝通,課程詳細介紹看下這篇:
感興趣的可以掃碼聯繫棧長微信(160285345)報名,請備註:999。
近期熱文推薦:
1.1,000+ 道 Java面試題及答案整理(2022最新版)
4.別再寫滿屏的爆爆爆炸類了,試試裝飾器模式,這才是優雅的方式!!
覺得不錯,別忘了隨手點贊+轉發哦!