购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 微服务架构项目详解

本章内容与《Spring Cloud Alibaba大型微服务架构项目实战》(上册)中第14章的内容基本一致,因为这部分内容比较重要,部分读者如果只购买了本书,则可能会在学习过程中遇到一些问题,因此在本书中加入了本章。

本来并不打算将微服务架构项目的开发过程单独整理成书,不过,在与出版社的编辑们沟通后,决定将本书的内容整理得更加丰富、完整。在上册的基础上,整理了实战项目的开发过程,其实是对整个开发过程的现场还原,重点是十几份开发过程的步骤源代码,每份代码都可以独立运行,一个步骤接着一个步骤,把整个项目开发完毕。读者学习后,如果能够自行还原整个过程并把项目独立开发出来,说明已经完全掌握了微服务开发的相关知识点。这个过程对笔者来说肯定不复杂,但是很多读者可能没有机会接触微服务架构项目的开发,这部分读者迫切需要这样的开发经验。开发过程比较详细,讲解了每个模块和微服务的开发过程,这种详尽的开发过程讲解一般不用文字的方式呈现,而是使用视频教程,所以编写本书也是一次全新的尝试。

1.1.1 实战项目介绍

newbee-mall是一套电商系统,包括基础版本(Spring Boot+Thymeleaf)、前后端分离版本(Spring Boot+Vue 3+Element Plus+Vue Router 4+Pinia+Vant 4)、秒杀版本、Go语言版本、微服务版本(Spring Cloud Alibaba+Nacos+Sentinel+Seata+Spring Cloud Gateway+OpenFeign+ElasticSearch+Logstash+Kibana)。商城端包括首页门户、商品分类、新品上线、首页轮播、商品推荐、商品搜索、商品展示、购物车、订单结算、订单流程、个人订单管理、会员中心、帮助中心等模块。商城后台管理系统包括数据面板、轮播图管理、商品管理、订单管理、会员管理、分类管理、设置等模块。

该项目包括商城端和商城后台管理系统。对应的用户包括商城会员和商城后台管理员。商城端是所有用户都可以浏览使用的系统,商城会员在这里可以浏览、搜索、购买商品。商城后台管理员在商城后台管理系统中管理商品信息、订单信息、会员信息等,具体包括商城基本信息的录入和更改、商品信息的添加和编辑、处理订单的拣货和出库,以及商城会员信息的管理。

该项目的具体特点如下。

(1)newbee-mall对开发人员十分友好,无须复杂的操作步骤,仅需2秒就可以启动完整的商城项目。

(2)newbee-mall是一个企业级别的Spring Boot大型项目,对各个阶段的Java开发人员都是极佳的选择。

(3)开发人员可以把newbee-mall作为Spring Boot技术栈的综合实践项目,其在技术上符合要求,并且代码开源、功能完备、流程完整、页面美观、交互顺畅。

(4)newbee-mall 涉及的技术栈新颖、知识点丰富,有助于读者理解和掌握相关知识,可以进一步提升开发人员的职场竞争力。

1.1.2 新蜂商城项目的开源历程

笔者在2019年8月12日写下了新蜂商城项目的第一行代码,经过近两个月的开发和测试,新蜂商城项目于2019年10月9日正式开源在GitHub网站上,当时的提交记录如图1-1所示。

图1-1 新蜂商城开源代码提交记录

由于避开了其他商城开源项目的不足之处,并且学习和使用的成本不高,因此新蜂商城项目在开源的第一年就取得了不错的成绩,获得近6000个Star和1500个Fork,成为一个比较受欢迎的开源项目。

最让笔者感到欣慰的一点是新蜂商城开源项目帮助了很多技术人员和学生。在项目开源之后,笔者经常收到留言和邮件,得知读者在学习和使用该商城开源项目后,对Spring Boot技术栈有了更深刻的认识,并且拥有了项目实战经验,可以顺利地完成工作或学业,甚至在找心仪工作的过程中起到了关键作用。

这些反馈不仅让笔者欣慰,还让笔者更加有动力不断地完善新蜂商城开源项目。为了让新蜂商城开源项目保持长久的生命力,并且帮助更多的朋友,笔者一直优化和升级。截至2023年2月,新蜂商城已经发布了7个重要的版本。

(1)新蜂商城v1版本,于2019年10月9日开源,主要技术栈为Spring Boot+MyBatis+Thymeleaf。

(2)新蜂商城Vue 2版本,于2020年5月30日开源,主要技术栈为Vue 2.6。

(3)新蜂商城Vue 3版本,于2020年10月28日开源,主要技术栈为Vue 3。

(4)新蜂商城后台管理系统Vue 3版本,于2021年3月29日开源,主要技术栈为Vue 3+Element Plus。

(5)新蜂商城升级版本,于2021年6月2日开源,增加了秒杀、优惠券等功能。

(6)新蜂商城Go语言版本,于2022年4月开源,主要技术栈为Go+Gin。

(7)新蜂商城微服务版本,于2022年6月开源,整合了Spring Cloud Alibaba及相关的微服务组件。

软件的需求是不断变化的,技术的更新迭代越来越快,新蜂商城系统会一步一步跟上技术演进的脚步,未来会不断地更新和完善。

由于篇幅有限,不可能将新蜂商城所有版本的开发讲解都写在一本书中。本书主要介绍微服务版本,技术栈为Spring Cloud Alibaba、Nacos、Sentinel、OpenFeign、Seata等。

关于新蜂商城的版本迭代记录,笔者整理了重要版本的时间轴,如图1-2所示,今后会一直完善和迭代新蜂商城项目。

图1-2 新蜂商城重要版本的时间轴

新蜂商城由最初的单体项目,逐步过渡到前后端分离和微服务架构项目,到现在已经“开枝散叶”,成长为一系列项目的集合。想要一个开源作品保持长久而健康的生命,这是一个非常不错的办法。由基础项目慢慢优化,不断地增加技术栈,在让读者学习越来越多知识点的同时,对开源作者的技术提升也有很大的帮助。开源作者和读者通过这个开源项目都能够学习到很多,达到在技术层面“共同富裕”的目的。

1.1.3 新蜂商城项目的功能及数据库设计

新蜂商城商城端功能汇总如图1-3所示。其主要功能包括会员、商城首页、商品搜索、商品展示、购物车、订单和支付。

新蜂商城后台管理系统功能汇总如图1-4所示。其主要功能包括系统管理员、轮播图管理、热销商品配置、新品上线配置、推荐商品配置、分类管理、商品管理、会员管理和订单管理。后台管理系统中的功能模块主要是让商城后台管理员管理运营数据及用户交易数据。这里通常就是基本的增、删、改、查功能。

在数据库方面,第一个版本中共有9张表,分别是商品分类表、商品表、轮播图表、首页推荐表、购物车表、订单表、订单项表、商城用户表和商城管理员表。

第二个版本主要把单体项目重构为前后端分离版,技术栈是Spring Boot和Vue,功能与第一个版本的功能并没有太多的差异。在数据库方面,第二个版本中共有13张表,比第一个版本多了4张表,其中两张表是与token相关的表,另外两张表是与收货地址相关的表。

图1-3 商城端功能汇总

图1-4 后台管理系统功能汇总

单体版与前后端分离版的表设计对比见表1-1。

表1-1 单体版与前后端分离版的表设计对比

与单体版相比,前后端分离版只是做了部分字段的调整,并且完善了用户收货地址模块。

本书所讲解的微服务架构项目是在前两个版本的基础上开发的,因此表结构、功能基本上都是一致的。想要更深入地理解这个项目,笔者建议读者先去体验一下新蜂商城单体版和前后端分离版的功能。笔者已经提供了这些项目的体验网站,读者可以在开源仓库中看到。在实际体验之后再学习微服务版本的源代码和功能设计,会更加顺畅一些。 eqIILnyt7S3uJkvWzMoclqKv1b3t4atAsMCVnFOCfcHSVNh/U7E8RZUCyUNRT390

点击中间区域
呼出菜单
上一章
目录
下一章
×