微服务项目学习:
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视频教程
了解更多内容。
推荐阅读