动态

详情 返回 返回

入職的新公司是微服務項目,慌了! - 动态 详情

不知道大家有沒有這樣的經歷:入職了一家新公司,接觸的項目是微服務項目,而自己之前接觸的都是單體項目,不知道如何下手項目,心裏會比較慌。今天就以我的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 Cloud 2023.0.1 微服務框架
Spring Cloud Alibaba 2023.0.1.0 微服務框架
Spring Boot 3.2.2 容器+MVC框架
Sa-Token 1.37.0 認證和授權框架
MyBatis 3.5.14 ORM框架
MyBatisGenerator 1.4.2 數據層代碼生成
PageHelper 6.1.0 MyBatis物理分頁插件
Knife4j 4.5.0 文檔生產工具
Elasticsearch 7.17.3 搜索引擎
Logstash 7.17.3 日誌收集
Kibana 7.17.3 日誌可視化查看工具
RabbitMQ 3.10.5 消息隊列
Redis 7.0 分佈式緩存
MongoDB 5.0 NoSql數據庫
Druid 1.2.9 數據庫連接池
MinIO 8.4.5 對象存儲
Seata 2.0.0 全局事務管理框架
Kubernetes 1.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

user avatar wobushiliaojian 头像 cloud11y 头像
点赞 2 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.