1、立项背景和目标
为了应对互联网时代高并发、高频次的在线购物需求,本项目旨在打造一个具备高可用、高并发、易扩展特性的分布式在线购物系统。系统采用微服务架构设计,将复杂的业务逻辑解耦,以解决传统单体架构在用户量激增时面临的性能瓶颈和系统维护困难问题。
2、软件功能、核心功能模块的介绍
系统包含管理平台和用户端两部分:
管理平台:实现了基于RBAC(基于角色的权限控制)的用户权限管理、商品(SPU/SKU)管理、订单处理、物流发货以及营销活动配置(如秒杀、拼团)。
用户端:实现了用户注册登录、商品浏览与检索、购物车管理、多级收货地址管理、在线下单支付以及高并发场景下的秒杀抢购功能。
3、业务流程、功能路径描述
用户通过网关(Gateway)统一入口访问服务。例如,在秒杀场景中:用户点击“参与活动” -> 后端通过分布式锁(Redis) 进行库存预扣并拦截超卖 -> 将订单生成逻辑异步写入消息队列(RabbitMQ) -> 客户端轮询获取订单结果。订单生成后,系统利用死信队列机制处理15分钟内未支付的超时订单,自动恢复库存并关闭订单,确保数据最终一致性。
1、整体架构和设计思路,不同模块使用的技术栈
本项目采用前后端分离的分布式微服务架构,后端基于 SpringCloud 生态构建,前端使用 Vue + Vant/ElementUI。
核心服务划分:
网关层 (Gateway-service):使用 SpringCloud Gateway 作为统一流量入口,负责路由转发、限流熔断(Hystrix)及跨域处理。
鉴权层 (Oauth-service):基于 Oauth2 + JWT 实现单点登录(SSO)与无状态认证,确保服务间调用的安全性。
业务层 (User-service & Shop-service):采用 MyBatis-Plus 操作 Mysql 数据库,并利用 Redis 作为分布式缓存,处理会员管理、商品管理等核心业务。
基础设施层 (Log-service):通过 AOP 拦截器 + Feign 远程调用实现统一日志收集,解决分布式链路追踪问题。
高可用与高性能设计:
注册中心 (Nacos):实现服务的自动注册与发现,支持集群节点的健康检查与负载均衡。
分布式锁:使用 Redis 实现排他锁,解决秒杀场景下的“库存超卖”问题。
异步解耦:利用 RabbitMQ 将订单生成、库存扣减等耗时操作异步化,通过“削峰填谷”提升系统吞吐量。