2 Star 0 Fork 0

周彦茂 / shopping

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
购物平台设计文档.md 4.82 KB
一键复制 编辑 原始数据 按行查看 历史
0202zc 提交于 2021-09-17 11:44 . 删除前端模板的.git文件夹

购物平台设计文档

一、总体架构

输入图片描述

如图1所示,本项目通过Nginx作为跨域访问和负载均衡的工具,也是用户使用本项目功能的唯一入口。整个项目采用分布式部署的思想,不同模块部署在不同的Docker容器中,以达到负载均衡、解耦合以及模块化开发等目的。RabbitMQ在本项目中起到削峰、解耦和发布订阅的功能。削峰、解耦主要用于缓解用户瞬时访问量过大可能导致的服务器瞬时请求过多资源不够的问题,主要作用于用户端后端以及mysql和es的同步中。发布订阅主要用来商家端后端和用户端后端的日志业务和邮件通知业务(用户订阅某一商品或商家的信息之后,若该商品出现降价或该商家有上新等,都将邮件通知到用户)中。而Eureka则作为SpringCloud的重要组件,负责各后端模块的注册更新服务、统一管理和负载均衡等功能。同时为各后端服务提供了统一的端口号:9000。后端项目均统一采用Restful接口设计方式,前端项目均通过后端提供的接口与后端进行交互。

二、商家端

后端:

后端端采用 Springboot 进行开发。项目整体结构如下: com.example.shopping │   MerchantApplication.java │
├─config │   CorsConfiguration.java │   EsConfiguration.java │   SecurityConfiguration.java │   MqConfiguration.java │   LocaleConfiguration.java   //国际化相关配置 │
├─Controller │   GoodsController.java │   StoreController.java │   MerchantController.java │
├─Mapper │   GoodsMapper.java │   StoreMapper.java │   MerchantMapper.java │
├─pojo │   GoodsDTO.java │   GoodsEntity.java │   GoodsVO.java │   StoreDTO.java │   StoreEntity.java │   StoreVO.java │   MerchantDTO.java │   MerchantEntity.java │   MerchantVO.java │
├─Service │   GoodsService.java │   StoreService.java │   MerchantService.java │
├─ServiceImpl │   GoodsServiceImpl.java │   StoreServiceImpl.java │   MerchantServiceImpl.java │
├─Aspect │   LogAspect.java   //以AOP的方式进行日志相关操作 │
├─util │   FileUtil.java │   UUIDUtil.java │   EncryptionUtil.java   //用于商家密码和商家id的加密、解密 │   MqUtil.java │   LocaleUtil.java   //国际化相关工具

整体访问流程大致如下:通过统一路由中的9000端口,访问实际端口号为9001的商家端后端项目。数据库采用mysql,并用redis进行缓存(端口号6379),每次更新、删除、新增数据到mysql时,都要刷新redis缓存(通过springboot的redis相关注解实现)。前端访问时,除了商品列表、商家列表用es外,其余所有信息均通过Redis访问数据。mq用于日志相关操作。

前端:

前端采用 vue-cli 脚手架进行开发,使用了vue-element-admin框架。

注:前端开发手册 vue-element-admin

图2. 首页

登陆后的页面如图2所示,也是我们前后端需要新增的功能。

图3. 下拉框内容 图3 展示了下拉框的布局和内容。

商家端接下来的任务:

  • 查阅资料确定加密、解密方式
  • 完成上述项目目录结构中的未完成部分
  • 完善已完成.java文档的未完成功能(如商家的日、月、年、总体收益情况等,具体参考前端文档)
  • 精简代码、修改相关命名,使其更加简洁规范(特别前端,占用空间过大,很多都需要删除)

三、用户端

后端

与商家端大体相同。增加了 mq 的削峰功能。

前端

采用仿京东 or 淘宝简化后的设计进行布局,页面上要求比商家端好看。

四、部署

采用 Docker 进行模块的部署,可考虑直接上k8s,然后容器运行时(CRI)选择 Docker。

Java
1
https://gitee.com/zhou-yanmao/shopping.git
git@gitee.com:zhou-yanmao/shopping.git
zhou-yanmao
shopping
shopping
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891