专栏名称: macrozheng
专注Java技术分享,解析优质开源项目。涵盖SpringBoot、SpringCloud、Docker、K8S等实用技术,作者Github开源项目mall(50K+Star)。
目录
相关文章推荐
嘶吼专业版  ·  LastPass 发现虚假支持中心试图窃取客户数据 ·  2 天前  
AIGC开放社区  ·  超GPT-4o,1240亿参数!最强开源多模 ... ·  4 天前  
AIGC开放社区  ·  超GPT-4o,1240亿参数!最强开源多模 ... ·  4 天前  
概念股逻辑  ·  国产操作系统前沿布局:润和软件HopeOS ... ·  5 天前  
51好读  ›  专栏  ›  macrozheng

入职的新公司是微服务项目,慌了!

macrozheng  · 公众号  · 互联网安全 科技自媒体  · 2024-11-22 14:10

正文

微服务项目学习:cloud.macrozheng.com

不知道大家有没有这样的经历:入职了一家新公司,接触的项目是微服务项目,而自己之前接触的都是单体项目,不知道如何下手项目,心里会比较慌。今天就以我的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


Github上标星11K的微服务实战项目mall-swarm,全套 视频教程(2024最新版) 来了!全套教程约26小时,共59期,如果你想学习目前最新的微服务技术栈,同时提高自己微服务项目的开发能力的话,不妨了解下,下面是项目的整体架构图,感兴趣的小伙伴可以点击链接 mall-swarm视频教程 加入学习。

整套 视频教程 的内容还是非常完善的,涵盖Spring Cloud核心组件、微服务项目实战、Kubernetes容器化部署等内容,你也可以点击链接 mall-swarm视频教程 了解更多内容。

推荐阅读