【深入淺出SpringCloud原理及實戰】「SpringCloud-Alibaba系列」微服務模式搭建系統基礎架構實戰指南及版本規劃踩坑分析

2022-12-14 12:01:22

前提介紹

SpringCloud-Alibaba致力於提供微服務開發的一站式解決方案。此專案包含開發分散式應用服務的必需元件,方便開發者通過 Spring Cloud程式設計模型輕鬆使用這些元件來開發分散式應用服務。

依託 Spring Cloud Alibaba,您只需要新增一些註解和少量設定,就可以將 Spring Cloud 應用接入阿里分散式應用解決方案,通過阿里中介軟體來迅速搭建分散式應用系統。

此外,阿里雲同時還提供了 Spring Cloud Alibaba 企業版 微服務解決方案,包括無侵入服務治理(全鏈路灰度,無失真上下線,離群範例摘除等),企業級 Nacos 註冊設定中心和企業級雲原生閘道器等眾多產品。

SpringCloud-Alibaba的開源服務

  • Nacos Config(分散式設定中心)
  • Nacos Discovery(分散式註冊中心)
  • Sentinel(熔斷限流器)
  • RocketMQ(訊息佇列)
  • Seata(分散式事務)

Spring Cloud Alibaba從開源建設以來,受到了很多社群同學的關注。社群的每一個 issue ,每一個 PR,都是對整個專案的幫助,都在為建設更好用的 Spring Cloud添磚加瓦。

SpringCloud-Alibaba版本說明

SpringBoot+SpringCloud+SpringCloud-Alibaba對的版本關係

由於Spring Boot 2.4+和以下版本之間變化較大,目前企業級客戶老專案相關Spring Boot版本仍停留在SpringBoot2.4以下,為了同時滿足存量使用者和新使用者不同需求,社群以SpringBoot 2.4 為分界線,同時維護 2.2.x 和 2021.x 兩個分支迭代。 為了規避相關構建過程中的依賴衝突問題,我們建議可以通過雲原生應用腳手架進行專案建立。

2021.x 分支的版本關係

適配SpringBoot 2.4,Spring Cloud2021.x版本及以上的Spring Cloud Alibaba版本按從新到舊排列如下表(最新版本用 * 標記)

注意,該分支 Spring Cloud Alibaba版本命名方式進行了調整,未來將對應Spring Cloud版本,前三位為Spring Cloud版本,最後一位為擴充套件版本,比如適配 Spring Cloud 2021.0.1 版本對應的Spring Cloud Alibaba第一個版本為:2021.0.1.0,第個二版本為:2021.0.1.1,依此類推)

2.2.x 分支

適配 Spring Boot 為 2.4,Spring Cloud Hoxton 版本及以下的 Spring Cloud Alibaba 版本按從新到舊排列如下表(最新版本用 * 標記):

元件版本關係

每個 Spring Cloud Alibaba 版本及其自身所適配的各元件對應版本如下表所示(注意,Spring Cloud Dubbo 從 2021.0.1.0 起已被移除出主幹,不再隨主幹演進):


使用Alibaba雲原生腳手架搭建SpringCloud-Alibaba框架

使用對應的SpringCloud-Alibaba腳手架進行搭建框架的方案和案例實戰,接下來會進行分析說明,在討論如何搭建之前,我們需要分析一下SpringBoot、SpringCloud和SpringCloud-Alibaba的版本關係對應關係,否則你會很難受,無法正常啟動和實現你所想要實現的功能效果。

存取我們的雲原生腳手架

專案構建方式

首先需要選擇專案構建方式,對於我們常用的構建方式主要有Maven和Gradle中兩種型別

開發語言

  • Java:主要作為我們首選開發語言
  • Kotlin
  • Groovy

Spring Boot版本

專案基本資訊

  • Group:專案分組:需要進行填寫專案的包名根目錄,一般為域名反向
  • Artifact:專案名稱:需要進行填寫相關的專案名稱。
  • version:專案版本:版本號。
選擇高階選項

  • 專案名稱:demo,主要設定maven專案的根目錄
  • 專案描述:Demo project for Spring Boot,設定專案資訊描述介紹
  • 專案基礎包:com.example.demo
  • 打包方式:Jar/War
  • Java版本:11/8

應用架構

  • 單模組:屬於最簡單的架構案例

  • MVC架構:採用SpringMVC框架實現web服務,可以選擇一些服務元件案例,作為我們專案參考

    • Jackso案例
    • Thymeleaf案例
    • Mybatis案例
    • Web服務案例(Controller控制器)
  • 分層架構:主要指的是前後端分離的架構案例,所以不會有對應的Thymeleaf案例了。

元件依賴

  • Alibaba Cloud:主要用於阿里雲的元件服務
  • Spring Cloud Alibaba
其他元件可以自行選擇即可
  • 開發工具
  • Web
  • 模板引擎
  • 安全
  • 關係型資料庫
  • 非關係型資料庫
  • 訊息
  • 輸入/輸出
  • Ops
  • 觀測
  • 等等......

點選瀏覽程式碼

點選下載程式碼

這樣就完成了整體的架構搭建程式碼