天天看點

微服務模式搭建系統基礎架構實戰指南及版本規劃踩坑分析

作者:Java牛逼架構師

前提介紹

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架構

  • Alibaba雲原生腳手架

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

通路我們的雲原生腳手架

微服務模式搭建系統基礎架構實戰指南及版本規劃踩坑分析

項目建構方式

微服務模式搭建系統基礎架構實戰指南及版本規劃踩坑分析

首先需要選擇項目建構方式,對于我們常用的建構方式主要有Maven和Gradle中兩種類型

  • Maven Project:官方倉庫:https://mvnrepository.com下載下傳位址:https://maven.apache.org/download.cgi選擇對應的版本安裝包即可
  • Gradle Project官方網站:https://gradle.org/下載下傳位址:https://gradle.org/releases/選擇對應的版本安裝包即可

開發語言

  • 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
  • 觀測
  • 等等......

點選浏覽代碼

微服務模式搭建系統基礎架構實戰指南及版本規劃踩坑分析

點選下載下傳代碼

微服務模式搭建系統基礎架構實戰指南及版本規劃踩坑分析

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

原文連結:https://www.cnblogs.com/liboware/p/16981429.html

繼續閱讀