项目背景:
项目是一个基于 Spring Cloud Alibaba 微服务架构的 B2C 电商系统,旨在提供完整的线上商城解决方案。系统采用前后端分离架构,支持多端接入,具备高可用、高并发、易扩展的特性。
项目目标:
- 构建功能完善的电商平台,满足用户购物全流程需求
- 采用微服务架构,支持独立部署和横向扩展
- 提供完善的管理后台,支持运营管理
- 实现营销活动、优惠券等促销功能
- 支持多种支付方式,提供安全可靠的支付体验
业务需求:
用户端功能:
-用户账户
-商品浏览
-购物车
-订单管理
-营销活动
-客服服务
管理后台功能:
-系统管理
-商品管理
-订单管理
-营销管理
-内容管理
-数据统计
-支付功能
架构设计原则
- **服务拆分**: 按业务领域拆分微服务,服务边界清晰
- **高内聚低耦合**: 服务内部高内聚,服务之间低耦合
- **可扩展性**: 支持水平扩展和垂直扩展
- **高可用性**: 服务冗余部署,故障自动转移
- **安全性**: 统一认证授权,数据加密传输
整体架构
技术架构
| 技术 | 版本 | 用途 |
|-----|------|------|
| Spring Boot | 2.7.18 | 基础框架 |
| Spring Cloud | 2021.0.5 | 微服务框架 |
| Spring Cloud Alibaba | 2021.0.5.0 | 阿里云组件 |
| MyBatis Plus | 3.5.7 | ORM框架 |
| MyBatis Generator | 1.4.1 | 代码生成 |
微服务组件
| 组件 | 用途 |
|-----|------|
| Nacos | 服务注册与发现、配置中心 |
| Sentinel | 流量控制、熔断降级 |
| OpenFeign | 服务间调用 |
| Gateway | API网关 |
数据存储
| 技术 | 版本 | 用途 |
|-----|------|------|
| MySQL | 8.0.23 | 关系型数据库 |
| Redis | - | 缓存 |
| Elasticsearch | - | 搜索引擎 |
| MongoDB | - | 文档存储 |
消息队列
| 技术 | 用途 |
|-----|------|
| RocketMQ | 异步消息、削峰填谷 |
| 阿里云ONS | 云消息服务 |
分布式技术
| 技术 | 用途 |
|-----|------|
| Redisson | 分布式锁 |
| Lock4j | 分布式锁注解 |
| Snowflake | 分布式ID生成 |
文件存储
| 技术 | 用途 |
|-----|------|
| 阿里云OSS | 云对象存储 |
| MinIO | 自建对象存储 |
工具库
| 技术 | 用途 |
|-----|------|
| Hutool | Java工具包 |
| FastJSON2 | JSON处理 |
| Lombok | 简化代码 |
| MapStruct Plus | 对象映射 |
| Forest | HTTP客户端 |
| Knife4j | API文档 |