Spring Cloud Alibaba 2022 正式發佈,啟動速度提升 10 倍,各方面直接起飛!

来源:https://www.cnblogs.com/javastack/archive/2023/08/01/17596562.html
-Advertisement-
Play Games

大家好,我是棧長。 經過 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技術棧" 原創,轉載、引用本文內容請註明出處,抄襲、洗稿一律投訴侵權,後果自負,並保留追究其法律責任的權利。

參考文檔:


課程推薦

在公眾號分享技術之餘,棧長花了大部分休息時間打造了的最新《Spring Cloud Alibaba 微服務實戰課》,一經推出,好評如潮,課程幾乎覆蓋了 Spring Cloud Alibaba 所有操作!!!

點擊放大查看高清版

已全部完結,可隨時報名學習全部內容。

最近棧長又花了不少時間更新到了第三期,乾貨滿滿,包括適配最新的 Spring Cloud Alibaba 2022.0.0.0 版本,課程其他內容也升級、加強了,比如 Nacos 配置加解密、OAuth 2 版本更新等,一次訂閱,永久免費提供更新。

總之,如果你想系統學習 Spring Cloud 微服務體系,想學習微服務項目架構設計,以及各種主流框架、中間件的銜接和運用,這個課程正適合你。學完直接把各種微服務技術寫到簡歷里,面試跳槽談薪水時會更有底氣。

早訂閱的小伙伴,一路學習跟過來,就知道有多值了,不要亂學老舊的微服務技術了,浪費時間和棧長學習最新的 Spring Cloud 微服務技術,少走彎路。

避免無效溝通,課程詳細介紹看下這篇:

別再亂學微服務了,這才使用 Spring Cloud 微服務的正確姿勢!

感興趣的可以掃碼聯繫棧長微信(160285345)報名,請備註:999。

近期熱文推薦:

1.1,000+ 道 Java面試題及答案整理(2022最新版)

2.勁爆!Java 協程要來了。。。

3.Spring Boot 2.x 教程,太全了!

4.別再寫滿屏的爆爆爆炸類了,試試裝飾器模式,這才是優雅的方式!!

5.《Java開發手冊(嵩山版)》最新發佈,速速下載!

覺得不錯,別忘了隨手點贊+轉發哦!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 0x01 如下RPC通信場景:業務線向交易中台發起交易。當交易完成後,zhongtai-trans要將交易結果通知給業務線。 那麼,在程式實現上,zhongtai-trans如何通知業務線呢? 0x02 這個問題暫且不表。我們先來看跨企業通信的業務回調通知。這裡,我們以商戶對接微信支付來舉例。用戶在 ...
  • 通過配置網關白名單列表的方式,在過濾器中對白名單直接放行,可用於對外開放介面,內部系統的登錄後的攔截校驗等場景 ...
  • 博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ...
  • ## 簡介 藉助 `github.com/hpcloud/tail` ,可以實時追蹤文件變更,達到類似shell命令`tail -f`的效果。 ## 示例代碼 以下示例代碼用於實時讀取nginx的`access.log`日誌文件,讀取到後輸出到控制台。如果nginx日誌做了json格式化,還可以解析 ...
  • ## 嵌入式伺服器 Spring Boot 的嵌入式伺服器功能是一項方便而強大的功能,它允許你在應用程式中直接運行 Web 伺服器,無需將其部署到單獨的獨立 Web 伺服器中。這使得開發、測試和部署 Web 應用程式變得容易,而且它還是輕量級的、易於啟動和停止的,易於配置。 ## Hibernate ...
  • **原文鏈接:** [使用 Go 語言實現二叉搜索樹](https://mp.weixin.qq.com/s/2wYRmG_AiiHYjLDEXg94Ag) 二叉樹是一種常見並且非常重要的數據結構,在很多項目中都能看到二叉樹的身影。 它有很多變種,比如紅黑樹,常被用作 `std::map` 和 `s ...
  • ### 你可以按照以下步驟製作自己的Python模塊: 1.創建一個新的.py文件,並定義你自己的函數或類。 2.編寫文檔字元串docstring,說明該函數或類的作用、參數和返回值說明等。 3.給你的函數或類添加恰當的註釋。 4.將該.py文件放在工程目錄的一個新文件夾中,這個文件夾就是你的模塊。 ...
  • ## 概述 Mybatis 的核心組件如下所示: - Configuration:用於描述 MyBatis 的主配置信息,其他組件需要獲取配置信息時,直接通過 Configuration 對象獲取。除此之外,MyBatis 在應用啟動時,將 Mapper 配置信息、類型別名、TypeHandler ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...