宇贸电商平台后端项目架构演进及项目重构

Hello,大家好,我是 Steafan 。众所周知,在之前的很长一段时间中,我为大家介绍了一个从 0 到 1 的一个自主实现的较为完整的电商平台,只不过是后端服务部分。随着时代的发展,和计算机行业的发展,我们的业务需求也在日趋复杂,我们之前的项目架构放到现在已经很难支撑起现在的业务需求了,所以,我们需要将之前已经实现的宇贸电商平台的后端服务架构进行改变,以适应日趋复杂的业务需求。

一、宇贸电商平台一期项目架构回顾

首先,让我们来回顾一下宇贸电商平台早期的项目架构,回去看了一下项目开始时的环境搭建文章(早期宇贸项目环境搭建),发现并没有对架构做专门的介绍,在这里给大家补上:

可以看到,我们一期的宇贸项目架构采用的是传统的 SSM 架构,即 Spring、Spring MVC、MyBatis。采用 SSM 架构需要我们在项目中进行大量的配置文件的配置,这在我们实际项目开发中很是浪费我们的开发时间,以及影响我们的项目开发效率,且不能很好地支撑日趋复杂的业务需求,所以,我决定对上述架构进行演变。

二、宇贸电商平台二期项目架构规划

鉴于上述情况,结合现阶段计算机行业发展现状,我决定将上述项目单体架构方式演变为微服务架构方式,而我们实现微服务的手段就是通过 Spring Cloud 微服务治理框架以及其提供的微服务治理组件来实现。我们会将宇贸电商平台一期的项目架构根据业务场景进行拆分,同时在原有的业务场景下,我们会添加几个电商平台已经发展稳定的业务场景,作为我们项目的新增功能项。

我们都知道,一期项目的功能架构主要分为以下几个功能模块:

这几个功能模块,只是实现了一个点上平台的基本功能,也就是说,只要一个系统具备了这几个模块,就可以被称为是一个简单的电商平台了。我们需要对上述几个功能模块进行拆分,将每个拆分后的业务模块作为一个微服务模块。拆分模块时,我们需要清楚哪一个或者哪几个模块是我们项目的核心模块,是必须要拆分出来作为我们项目的核心微服务的,这里我们根据项目特点选择用户模块、商品管理模块、支付模块来作为本项目的核心模块,而其他模块:购物车模块和订单管理模块可以合并到支付模块中,作为支付模块的辅助微服务模块;而收获地址管理模块可以合并到用户模块中,作为用户模块的辅助微服务模块;而商品管理模块则是单独分离出来的核心模块,因为在每一个电商系统中,商品都是其系统的核心内容,如果没有商品,也就没有电商系统。

通过访问当下主流的电商平台,例如,淘宝、京东等,我们需要在我们原有的系统基础之上,添加几个功能模块,来使我们的电商项目更加完善,他们分别是:商品评论功能、卖家管理端、物流跟踪功能、优惠券投放功能、商品秒杀功能。其中,商品评论功能、商品秒杀功能可以合并到商品管理模块中,优惠券投放功能需要单独分离出来、作为一个单独的业务模块去处理,而物流跟踪功能和卖家管理端可以合并到用户模块中,这样一来,我们的宇贸电商平台就更加完善了。

拆分后的项目功能架构如下图所示:

以上就是我们宇贸项目二期需要实现的所有功能,同时,针对一期中的部分功能也会对其进行相应的改造和升级,在介绍完功能架构之后,最后来让我们看一下宇贸项目二期的项目整体架构:

写到这里,本片博文就结束了,在下篇博文中,我将为大家介绍如何根据我们的项目架构图,搭建我们的项目环境,在搭建好项目环境之后,我们还会做一些项目初始化的内容。

如果大家有问题,可以在下方评论留言,我会及时回复大家。最后,感谢大家长期以来的关注与支持,谢谢!