作者 | 鋮樸
什麼是 Spring Cloud Alibaba?
1、簡介
Spring Cloud Alibaba 是由阿里巴巴(後文簡稱:阿里)中介軟體團隊於 2018 年 7 月開源,為業界提供的一套基於阿里內部分散式技術的一站式微服務構建解決方案。基於 Spring Cloud 微服務架構標準,針對微服務架構中的服務註冊與發現、分散式訊息、服務限流降級以及分散式事務等核心模組,都提供了相應的面向業界的成熟解決方案,與 Spring Cloud 之間的關係如下圖所示:
依託 Spring Cloud Alibaba,使用者僅需要新增一些註解和少量設定,就可以將 Spring Cloud 應用接入阿里微服務解決方案,通過阿里中介軟體來迅速搭建穩定可靠的分散式應用系統。
2、主要功能
在 Spring Cloud 眾多的實現方案中,Spring Cloud Alibaba 憑藉其支援元件最多,方案最完善,在 Spring Cloud 生態家族中扮演了重要角色。Spring Cloud Alibaba 與 Spring Cloud 生態其他方案之間對比圖如下:
Spring Cloud Alibaba 所提供的一套微服務系統構建解決方案元件如下: • Nacos:阿里開源的一款易於構建雲原生應用的動態服務發現、設定管理和服務管理平臺。 • Sentinel:阿里開源的一款限流降級產品,將流量作為切入點,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性。 • RocketMQ:阿里捐獻給 Apache 基金會的一款分散式訊息產品,是一個基於 Java 的高效能、高吞吐量的分散式訊息和流計算平臺。 • Dubbo:阿里捐獻給 Apache 基金會的一款高效能的 Java RPC 框架。 • Seata:阿里開源的一套易於使用的高效能微服務分散式事務解決方案。 • Alibaba Cloud OSS:阿里雲物件儲存服務(Object Storage Service,簡稱 OSS),是阿里雲提供的海量、安全、低成本、高可靠的雲端儲存服務。您可以在任何應用、任何時間、任何地點儲存和存取任意型別的資料。 • Alibaba Cloud SchedulerX:阿里中介軟體團隊開發的一款分散式任務排程產品,支援週期性的任務與固定時間點觸發任務。 • Alibaba Cloud SMS:覆蓋全球的簡訊服務,友好、高效、智慧的互聯化通訊能力,幫助企業迅速搭建客戶觸達通道。
3、快速上手
為了讓廣大開發者,快速學習與上手。專案維護團隊於 2020 年 12 月,聯合阿里雲知行實驗室推出了 Spring Cloud Alibaba 入門系列課程與 Java 工程腳手架工具,方便讓廣大開發同學快速瞭解和構建 Spring Cloud Alibaba 專案。Spring Cloud Alibaba 入門系列課程可在知行實驗室首頁獲取:
基於阿里雲 Java 腳手架,開發者可告別複雜的依賴管理,通過腳手架工具選擇所需依賴,便可生成包含相關依賴的專案模板供開發者下載使用。相關專案構建過程如下圖所示:
新版本特性預覽
介紹完 Spring Cloud Alibaba 後,本次隆重發布的 Spring Cloud Alibaba 2.2.7 版本對其中包括註冊設定中心、分散式訊息等在內的眾多元件進行重大升級:
• Nacos:升級 Nacos 使用者端到 2.0 版本,註冊發現過程支援 gRPC 長連結,可顯著降低資源開銷,提高系統吞吐量,在效能上有大幅提升。更多細節可參見Nacos 2.0 介紹資料。 • RocketMQ:將之前專案中的 RocketMQ 單獨分支融入到了專案主分支,跟隨大版本一起釋出迭代,使使用者可在最新 Spring Cloud Alibaba 中直接使用 RocketMQ 新支援的批次訊息、非同步訊息回撥處理、Push 模式下指定消費起始位等眾多新特性。 • Spring Boot:升級 Spring Boot 版本到 2.3.12,相比於之前的 2.3.2,不僅升級了大量底層元件的依賴增加了一些新特性,並修復了很多遺留問題,提高了框架穩定性。 • Spring Cloud:升級 Spring Cloud 版本到 Hoxton.SR12,相比於之前的 Hoxton.SR9 在基礎元件的穩定性方面有了進一步提升。
除了元件升級,另外也修復了很多之前版本所存在的問題,進一步提升了 Spring Cloud Alibaba 使用的穩定性與健壯性。更多資料可參見發版公告。Spring Cloud Alibaba 與 Spring Cloud 和 Spring Boot 當前各版本對應關係可參見官網 Wiki 版本說明。
回顧與展望
經過三年多的飛速發展,截止到當前,Spring Cloud Alibaba 共釋出了 26 個版本,在GitHub上的累計 star 數目超過了 2W,folk 數達到了 6.4k,使用者數達到了 19.4k 之多,各項關鍵資料遙遙領先國內外各大雲廠商推出的同類開源微服務專案。
除了支撐阿里巴巴經濟體日常複雜的微服務應用場景,Spring Cloud Alibaba也被數千家外部企業使用者在生產場景中廣泛使用。
未來 Spring Cloud Alibaba 會繼續對齊 Spring Cloud 主流版本發展演進,近期會同時支援以 Spring Cloud 2020.0.X 和 Hoxton 兩個當前主流版本對應的 Spring Cloud Alibaba 2021.X 和 2.2.X 版本迭代。社群未來初步規劃會持續在完善當前所支援的 Nacos、RocketMQ 和 Spring Cloud Dubbo 等元件的穩定性與豐富元件所支援的功能上持續努力。(也歡迎大家提 issue 告訴社群你所認為專案值得演進的具體方向哈:)
最後,作為一個業界知名開源專案,未來發展還需要持續依託社群大家共同的努力,也非常歡迎新同學的加入!只要能貢獻 3~5 次社群認可具有價值的 Pull requests,即可有機會被邀請成為社群 Collaborator,共同主導未來社群發展建設!
Spring Cloud Alibaba 企業版
除了開源的 Spring Cloud Alibaba 以外,針對企業級使用者複雜繁重的微服務治理訴求,阿里雲中介軟體團隊推出的阿里雲微服務引擎(Microservices Engine,MSE)提供了包括全鏈路灰度、無失真上下線、服務預熱、離群範例摘除等在內的大量企業級微服務治理功能,讓使用者可不改一行程式碼即可將應用接入 MSE 便捷、低成本地擁有企業級微服務治理能力。除了微服務治理,MSE 還提供了企業級的 Nacos 註冊設定中心和企業級雲原生閘道器等眾多產品,幫助企業使用者迅速擁抱雲原生微服務。
點選瞭解更多 Spring Cloud Alibaba 企業版相關內容: