基于微服务架构的高校二手物品交易系统设计与实现
2023-09-25周姣
周 姣
(安徽财贸职业学院 信息工程学院,安徽 合肥 230601)
0 引言
在电商平台飞速发展的时代,相比实体店购物,网购已成常态,在带来便捷的同时,也潜藏着一些潜在风险。特别是当代大学生,消费观念不成熟,观看购物直播,经常冲动消费,购买大量不符合自身需求的物品,导致物品积压成为闲置,造成了资源浪费。
二手交易市场发展历史久远,早期是大家集中在跳蚤市场,以物换物,或者是将自己的闲置物品进行出售,供其他人购买,该种交易方式一定程度上解决了资源浪费,提高了市场物品流通率。但由于地理位置、信息不流通以及管理等各项不确定因素导致了线下的交易市场存在一定局限性,物品可选择性少,人流量小,市场规模小,由此,产生了以线上交易为主的二手电商平台。
目前市面上比较常见的二手交易平台是闲鱼[1]、转转等,突破了地域限制,各地用户都可注册登录并发布自己的闲置物品,物品种类丰富,可选择性多,但仍然存在着一定问题,忽略了二手市场的特殊性,二手物品具有折旧率和破损率等特殊属性,不能和新产品一样售后无忧,无法保证消费者购买后安心使用。所以二手物品交易一般最好采取线下当面交易,钱货两清,避免货不对板,来回折腾浪费时间。因此,对于大学生这个大型消费团体,急需开发一款基于微服务架构的高校二手物品交易系统,实现快捷的同校物品交易就显得尤为重要[2]。
1 需求分析
1.1 业务需求分析
高校二手交易平台的管理主要分为四大服务,即用户服务、商品服务、订单服务以及后台管理服务。其中,后台管理员主要负责用户上传物品的筛选和发布,用户主要是上传个人需要出售的二手物品以及购买物品。商品服务模块还有一个特殊的功能,可以对平台上购买到的货不对版物品进行投诉举报。
1.2 功能模块分析
根据当前业务需求分析,二手交易系统主要功能分为用户服务、商品服务、订单服务以及后台管理服务。这里主要介绍商品服务和后台管理服务。
商品服务:包含上传闲置物品功能,商品清单功能、物品收藏功能以及投诉卖家功能。用户上传待出售物品信息;商品清单记录用户上传的物品情况,用户也可对自己感兴趣的物品进行收藏并同时也可对出现货不对版的卖家进行举报投诉。
后台管理服务:包含用户信息管理、商品管理、收藏管理、订单管理。个人信息管理包含对注册用户信息进行查看,商品管理主要包含对用户提交的二手物品信息进行审核并发布,不符合要求的直接退回,能够对交易成功的物品用户信息进行查看,同时也能查看用户的投诉举报信息,一旦某一用户被投诉数超过3次,直接注销此用户。
1.3 用户和安全性分析
二手交易系统用户主要分为系统管理员以及个人用户,通过对系统不同角色的分析,不同角色具有不同的功能,出于安全考虑,在设计登录系统时,用户输入账号和密码登录后就可以分辨出当前用户的权限类别,不同权限用户所展示界面不同,可访问以及可操作的数据也不同。
2 系统设计
2.1 功能模块设计
根据需求分析,对二手交易推荐系统功能模块进行设计,如图1所示。登录模块设计了权限认证,不同权限用户登录后所显示的界面不同。
图1 高校二手物品交易平台功能模块设计图
2.2 数据库设计
数据库是应用系统实现的核心,分析各模块间的需求关系,对二手交易推荐系统的数据库进行设计。二手交易系统主要包含用户信息表、角色信息表、商品信息表、举报信息表、收藏信息表以及出售类型信息表等。用户信息表以及商品信息表的结构设计见表1、表2。
表1 用户信息表
表2 商品信息表
3 系统实现
3.1 开发环境
高校二手交易平台采用前后端分离架构,后端服务则采用微服务架构实现。
前端借助Visual Studio Code、Node.js 工具,实现Vue.js、Element 技术。Vue.js 是一种流行的JavaScript框架,可用于构建单页应用程序和用户界面。它提供了一种简单而灵活的开发方式,能够轻松地创建交互式Web 应用程序。Element 是一款基于Vue.js 框架的UI 组件库,它提供了一系列高质量且易于使用的UI组件,如表格、表单、弹窗、导航、按钮等,可以快速搭建美观、可靠的Web界面[3]。
后端借助IntelliJ IDEA、Maven 工具,实现Spring Boot、Spring Cloud、SpringCloudAlibaba、MyBatis-Plus、Netflix Eureka、Feign、Elasticsearch、RabbitMQ、Springsession、Redisson 和MySQL 等技术。其中Spring Boot是一个基于 Spring 框架的开发框架,可以快速构建独立的、生产级别的应用程序[4]。Spring Boot 提供了一些很好的默认配置,并且可以自动配置常见的 Spring应用程序功能和第三方库。Spring Cloud 是基于Spring Boot 的一组工具,提供了开发分布式系统所需的支持,例如服务发现、配置管理、负载均衡等。MyBatis-Plus 是一个 MyBatis 增强工具包,简化了在使用 MyBatis 进行数据库操作时的一些常见任务,例如分页、批处理、代码生成等。它可以更加高效地编写数据库访问层的代码。Netflix Eureka 是一个服务发现组件,可用于构建分布式系统中的服务注册和发现机制。它可以让服务自动注册到注册中心,并且可以通过注册中心找到需要调用的服务。Feign 是一个声明式的 HTTP 客户端,可以更加方便地调用 RESTful 服务。它简化了远程服务调用的过程,使得服务间通信变得更加容易。Elasticsearch 是一个基于 Lucene 的搜索引擎,可用于实时搜索和分析大量数据。它提供了全文搜索、结构化搜索、分析引擎等能力,适用于各种类型的应用程序。RabbitMQ 是一个开源消息队列系统,可以在分布式应用中处理异步任务。它支持多种协议,包括 AMQP、STOMP、MQTT 等,还提供了负载均衡和故障转移等特性。Spring Session 是Spring 框架提供的一个模块,用于管理用户会话,并提供了一些常见的会话管理功能,例如分布式会话、集群会话、会话恢复等。Redisson 是一个基于 Redis的分布式锁和对象桶的 Java 库。它提供了各种数据结构,如分布式队列、集合、Map、锁等,可以更容易地实现分布式系统。Redis 是一个内存键值存储数据库,具有快速、高效、可扩展等特性。它支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合等,适用于缓存、消息队列、计数器等应用场景。MySQL是一种关系型数据库管理系统,MySQL使用SQL语言进行操作和管理数据,支持多用户、多线程和多个客户端同时访问,可以存储和处理大量的数据。它具有高可靠性、可扩展性和灵活性等优点,广泛应用于各种Web 应用程序、企业级应用、电子商务和云计算等领域。
3.2 技术架构
本系统使用前后端分离编写,后端服务采用微服务架构实现。整体架构分为三个部分:前端、后端和数据存储。前端主要负责展示网页界面,后端包括所有微服务,负责处理业务逻辑和与数据存储层的交互,而数据存储则负责持久化数据,如图2所示。下面我们依次对这三个部分进行详细介绍。
图2 高校二手物品交易平台系统架构图
前端采用Vue.js 框架来构建单页应用。该框架具有强大的生态系统和组件库,可以帮助我们快速开发Web 应用程序。在此基础上,我们使用Element UI作为UI框架,提供丰富的UI组件和风格,以及响应式布局。
前端主要包含如下页面。
1)首页:展示热销商品等。
2)商品详情页:展示商品描述信息、商品价格、收藏信息等。
3)用户中心:展示个人信息、发布的商品列表、订单等。
4)登录注册页:提供登录和注册功能。
5)发布商品页:提供发布商品的表单。
后端采用Spring Cloud 和Spring Cloud Alibaba 技术栈,通过Eureka 注册中心实现服务注册和发现。同时,使用Feign调用其他微服务,并通过Ribbon负载均衡实现高可用性。在业务逻辑层面,采用了分层架构的思想。比如,业务逻辑层面,包括Controller、Service、Dao(或Repository) 三层,其中Controller层负责接收请求并调用Service层进行处理,Service层负责具体的业务逻辑实现,Dao层则负责与数据存储层交互进行数据操作。后端微服务之间可以实现服务的互相调用。
后端包含如下微服务。
1)商品服务:提供商品信息的增删改查以及搜索。
2)用户服务:提供用户信息的增删改查。
3)订单服务:提供订单的生成、查询等功能。
4)后台管理服务:负责商品下架、商品审核等功能。
数据存储层面采用MySQL作为主要数据库,Elasticsearch 作为全文搜索引擎,Redis和Redisson 实现缓存和分布式锁机制。其中,MySQL 主要存储商品、用户、订单等核心业务数据,Elasticsearch 负责商品搜索功能,Redis则用于缓存热点数据,提升系统性能,Redisson 则用于分布式锁机制,确保在多个微服务之间执行互斥任务时不会产生冲突。
总之,这样一个基于微服务架构的高校二手商品交易平台,通过多种技术的组合实现了高可用性、高并发能力和可扩展性。
3.3 功能模块实现
根据功能模块设计,高校二手物品交易平台实现了用户服务、商品服务、订单服务以及后台管理服务。
用户服务:用户首次进入平台界面,可选择直接进入平台首页浏览商品,若想购买商品或进行收藏商品等功能,首次则需注册账号,实名认证完善相关信息。如图3所示。若有账号,用户进行登录需要填入账号(手机号或用户名)以及密码,若忘记密码,可点击忘记密码按钮找回密码。如图4所示。
图3 注册页面
图4 登录页面
商品服务:用户进入系统主页面,可直接看到关于商品的展示图以及商品名和商品价格。可在搜索框内直接搜索商品关键字,如智能手机,则会出现有关智能手机的所有商品,如图5所示。同时主页面包含三大功能,最新发布、联系我们以及关于我们。用户若想筛选最新发布的商品,可直接点击按钮,后台会直接为用户推荐最新商品。若想了解某一件商品的详情,可直接点击商品,会出现对应的商品详情介绍,如图6所示。
图5 系统主页面
图6 商品详情页面
后台管理服务是对商城的各种信息进行管理维护,主要包含个人信息管理、商品管理、收藏管理、订单管理,具体Web页面如图7 所示,这里主要介绍商品管理服务的实现,其他模块实现方式类似。
图7 管理员页面
商品管理服务包含商品审核,商品清单以及商品详情。具体介绍如下。
1)普通用户在发布功能输入商品信息,包含商品名称、商品价格、商品品牌、商品新旧程度、商品图片、商品详情介绍以及商品购买时间等相关信息后,管理员会在商品审核模块审核用户提交商品,审核通过直接发布,审核不通过说明理由直接退回。
2)商品清单模块主要是展示已发布商品,管理员可以对商品进行查询、编辑、删除以及相关操作。同时还能查询商品目前状态,包含正常、违规、已出售等。
3)商品详情模块主要是展示已发布商品的具体信息,包括商品名称、价格、品牌以及商品详情介绍等信息。
4 结束语
本系统使用前后端分离架构模式编写,前端采用Vue.js 以及Element 框架技术实现,后端采用Spring-Cloud和Spring Cloud Alibaba技术栈实现微服务管理。系统实现了高校二手物品交易的功能,促进用户快速便捷地买卖自己的闲置物品,提高了资源的利用率。