专栏名称: macrozheng
专注Java技术分享,解析优质开源项目。涵盖SpringBoot、SpringCloud、Docker、K8S等实用技术,作者Github开源项目mall(50K+Star)。
目录
相关文章推荐
51好读  ›  专栏  ›  macrozheng

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

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

主要观点总结

本文介绍了如何快速上手微服务项目,以mall-swarm微服务电商实战项目为例,总结了新手上手微服务项目的方法,包括项目简介、搭建开发环境、熟悉项目功能、学习微服务核心组件、搭建微服务脚手架、实现项目部署上线和扩展项目开发新需求等关键步骤。同时提供了项目的Github地址和教程网站,并推荐了相关的视频教程和资源。

关键观点总结

关键观点1: 项目简介

介绍了mall-swarm项目的特点,包括是一套微服务商城系统,采用了最新的微服技术栈,涵盖Spring Cloud Alibaba、Spring Boot 3.2、JDK17、Kubernetes等核心技术。

关键观点2: 搭建开发环境

描述了如何根据教程把项目运行起来,包括后端开发环境搭建和前端开发环境搭建。

关键观点3: 熟悉项目功能

讲解了熟悉项目功能的重要性,并提供了相关文档的链接,帮助理解项目的业务逻辑。

关键观点4: 学习微服务核心组件

介绍了Spring Cloud和Spring Cloud Alibaba的核心组件,以及它们在微服务项目中的基础作用。

关键观点5: 搭建微服务脚手架

讲解了如何自行搭建一个微服务项目脚手架,并介绍了mall-swarm项目使用的后端技术栈。

关键观点6: 实现项目部署上线

描述了使用Kubernetes(K8S)部署微服务项目的方法和流程。

关键观点7: 扩展项目开发新需求

讲解了如何在掌握微服务项目技术栈和理解项目业务的情况下开发新的业务功能。


正文

请到「今天看啥」查看全文


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

推荐阅读







请到「今天看啥」查看全文