微服务项目学习: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核心组件
- Sentinel:和断路器具有类似功能,能实现熔断与限流。
在我的《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
Github上标星11K
的微服务实战项目mall-swarm,全套 视频教程(2024最新版) 来了!全套教程约26小时,共59期
,如果你想学习目前最新的微服务技术栈
,同时提高自己微服务项目的开发能力
的话,不妨了解下,下面是项目的整体架构图,感兴趣的小伙伴可以点击链接 mall-swarm视频教程 加入学习。
整套 视频教程 的内容还是非常完善的,涵盖Spring Cloud核心组件、微服务项目实战、Kubernetes容器化部署等内容,你也可以点击链接 mall-swarm视频教程 了解更多内容。
推荐阅读