入職的新公司是微服務專案,慌了!

macrozheng發表於2024-11-29
不知道大家有沒有這樣的經歷:入職了一家新公司,接觸的專案是微服務專案,而自己之前接觸的都是單體專案,不知道如何下手專案,心裡會比較慌。今天就以我的mall-swarm微服務電商實戰專案為例,來聊聊如何快速上手微服務專案。

mall-swarm專案簡介

這裡先簡單介紹下mall-swarm專案,mall-swarm專案(11k+star)是一套微服務商城系統,採用了2024最新微服技術棧,涵蓋Spring Cloud Alibaba、Spring Boot 3.2、JDK17、Kubernetes等核心技術。mall-swarm專案在電商業務的基礎整合了註冊中心、配置中心、監控中心、閘道器等系統功能。

  • Github地址:https://github.com/macrozheng/mall-swarm
  • Gitee地址:https://gitee.com/macrozheng/mall-swarm
  • 教程網站:https://cloud.macrozheng.com

專案演示:

把專案執行起來

學習專案的第一步,一般都是把專案執行起來,例如學習mall-swarm專案的時候,可以根據《mall-swarm微服務學習教程》 的快速開始部分,把開發環境搭建起來。

在《mall-swarm專案後端開發環境搭建》文件中,就有mall-swarm專案後端開發環境的搭建教程,對比下之前mall專案的搭建,其實就多了一個Nacos元件而已。

在《mall-swarm前端開發環境搭建》文件中有mall-swarm專案後臺管理系統和前臺商城系統搭建教程,對比下之前mall專案的前端搭建,把後端API請求路徑改為呼叫閘道器即可。

熟悉專案功能

搭建完專案之後,我們就可以開始熟悉專案的功能了,熟悉專案的功能有利於我們理解專案的業務邏輯。

在《mall-swarm專案核心功能演示》文件中就有專案的核心功能的演示,包括後臺管理系統功能及移動端商城功能,前後端結合的訂單流程以及微服務專案系統功能演示,可以讓大家對mall-swarm專案實現的功能有個大概瞭解。

大家在接觸新專案的時候,自己把對應的功能去使用一下也可以加深對專案功能的理解,比如體驗下後臺管理系統的功能:https://www.macrozheng.com/admin/

再體驗下前臺商城系統的功能,前後臺系統結合使用也有助於我們理解專案的核心業務邏輯:https://www.macrozheng.com/app/

學習微服務核心元件

其實基於Spring Cloud的微服務專案是由一個個Spring Boot應用組合起來的,所以在Spring Boot的基礎上,我們還需學習Spring Cloud核心元件,這些核心元件是微服務專案的基礎。

目前最新的Spring Cloud版本為Spring Cloud 2023,我們構建微服務專案時一般會用到如下Spring Cloud和Spring Cloud Alibaba核心元件。

Spring Cloud核心元件

  • Spring Cloud Eureka:註冊中心,可以實現服務註冊與發現功能。
  • Spring Cloud Consul:服務治理與配置中心。
  • Spring Cloud Zookeeper:服務治理與配置中心。
  • Spring Cloud Gateway:API閘道器服務。
  • Spring Cloud Circuit Breaker:斷路器,實現服務容錯保護功能。
  • Spring Cloud Config:配置中心,外部集中化配置管理。
  • Spring Cloud Bus:訊息匯流排,可以實現分散式訊息傳送。
  • Spring Cloud LoadBalancer:負載均衡元件,可以實現服務間負載均衡的呼叫。
  • Spring Cloud OpenFeign:服務呼叫元件,可以實現服務間的宣告式服務呼叫。
  • Spring Cloud Stream:訊息元件,可以構建基於事件驅動的應用。

Spring Cloud Alibaba核心元件

  • Nacos:可以作為註冊中心和配置中心使用。
  • Sentinel:和斷路器具有類似功能,能實現熔斷與限流。
  • Seata:微服務分散式事務解決方案。

在我的《mall-swarm微服務學習教程》 元件篇中不僅會講解上述Spring Cloud核心元件,還會講解微服務許可權解決方案Spring Authorization Server和分散式鏈路跟蹤工具SkyWalking,具體教程目錄如下。

搭建微服務腳手架

學習完Spring Cloud核心元件之後,如何把這些元件運用到專案中去呢?此時可以自行搭建一個微服務專案腳手架,這樣就能快速掌握所學的微服務技術了。

不要小看一個微服務專案腳手架,一個腳手架會涵蓋專案中用到的幾乎所有技術,而且這些技術能複用到其他微服務專案中去,下面是mall-swarm專案使用到的後端技術棧。

技術版本說明
Spring Cloud2023.0.1微服務框架
Spring Cloud Alibaba2023.0.1.0微服務框架
Spring Boot3.2.2容器+MVC框架
Sa-Token1.37.0認證和授權框架
MyBatis3.5.14ORM框架
MyBatisGenerator1.4.2資料層程式碼生成
PageHelper6.1.0MyBatis物理分頁外掛
Knife4j4.5.0文件生產工具
Elasticsearch7.17.3搜尋引擎
Logstash7.17.3日誌收集
Kibana7.17.3日誌視覺化檢視工具
RabbitMQ3.10.5訊息佇列
Redis7.0分散式快取
MongoDB5.0NoSql資料庫
Druid1.2.9資料庫連線池
MinIO8.4.5物件儲存
Seata2.0.0全域性事務管理框架
Kubernetes1.29應用容器管理平臺

在我的《mall-swarm微服務學習教程》 的架構篇中,會帶大家搭建一個mall-swarm專案在使用的專案腳手架,從一個單體的Spring Boot腳手架出發,一步步改造成一個通用的微服務腳手架,涵蓋微服務API文件聚合、微服務許可權、微服務應用監控等解決方案,具體教程目錄如下。

實現專案的部署上線

Kubernetes(簡稱K8S)是一套非常流行的容器編排系統,目前有很多微服務專案在生產環境都是使用它來部署的,所以我們也有必要掌握下微服務專案在K8S環境下的部署。

《mall-swarm微服務學習教程》 的K8S篇中,會帶大家使用企業級容器管理平臺KubeSphere實現mall-swarm專案的部署。

整個K8S篇的內容如下,涵蓋了K8S的講解、SpringBoot應用在K8S環境下的部署、KubeSphere的使用以及mall-swarm在K8S環境下的部署。

擴充套件專案開發新需求

在學習完微服務專案的技術棧,並且能自行搭建微服務腳手架之後,我們就可以在微服務專案中開發業務功能了,這些業務功能的開發與在單體應用中開發起來差不多。

總結

對於新上手的微服務專案,就算沒有微服務專案的開發經驗,大家也不必驚慌,可以按如下步驟來上手。

  • 把專案執行起來:第一步,可以看對應的部署文件。
  • 熟悉專案功能:有利於理解專案的業務邏輯。
  • 學習微服務核心元件:看懂微服務專案程式碼的基礎。
  • 搭建微服務腳手架:有助於熟練掌握專案中的微服務技術棧。
  • 實現專案的部署上線:掌握微服務專案的部署流程也是必要的。
  • 擴充套件專案開發新需求:在掌握專案中的技術棧和理解專案業務的情況下開發。

專案地址

https://github.com/macrozheng/mall-swarm

相關文章