# hmall **Repository Path**: boronzhang/hmall ## Basic Information - **Project Name**: hmall - **Description**: H-Mall 是一个基于 Spring Cloud 生态的分布式微服务电商系统,采用前后端分离架构,具备高可用、易扩展、易维护等特点。项目涵盖了用户、商品、购物车、订单、支付等核心业务,支持分布式事务、服务注册与发现、配置中心等企业级能力,适合中大型互联网电商场景。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-12-17 - **Last Updated**: 2025-12-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # H-Mall 微服务电商项目 ## 一、项目简介 H-Mall 是一个基于 Spring Cloud 生态的分布式微服务电商系统,采用前后端分离架构,具备高可用、易扩展、易维护等特点。项目涵盖了用户、商品、购物车、订单、支付等核心业务,支持分布式事务、服务注册与发现、配置中心等企业级能力,适合中大型互联网电商场景。 **技术栈:** - Spring Boot 2.7.x - Spring Cloud 2021.x - Spring Cloud Alibaba - MySQL 8 - Nacos(注册中心&配置中心) - Seata(分布式事务) - Docker & Docker Compose --- ## 二、运行步骤 ### 1. 环境准备 - 安装 [Docker Desktop](https://www.docker.com/products/docker-desktop/) 并启动 - 安装 JDK 11+、Maven 3.6+ - 至少 4GB 内存,10GB 磁盘空间 ### 2. 构建项目 ```bash mvn clean package -DskipTests ``` ### 3. 一键启动 ```bash # Windows start.bat # Linux/Mac ./start.sh ``` ### 4. 访问服务 | 服务 | 端口 | 说明 | 访问地址 | |--------------|--------|----------------|---------------------------------| | 网关服务 | 8080 | API网关 | http://localhost:8080 | | 用户服务 | 8081 | 用户管理 | http://localhost:8081 | | 商品服务 | 8082 | 商品管理 | http://localhost:8082 | | 购物车服务 | 8083 | 购物车 | http://localhost:8083 | | 订单服务 | 8084 | 订单管理 | http://localhost:8084 | | 支付服务 | 8085 | 支付管理 | http://localhost:8085 | | Nacos控制台 | 8848 | 配置/注册中心 | http://localhost:8848/nacos | | Seata控制台 | 8099 | 分布式事务 | http://localhost:8099 | | MySQL | 3306 | 数据库 | 本地客户端连接,root/123 | ### 5. 停止服务 ```bash # Windows stop.bat # Linux/Mac ./stop.sh ``` --- ## 三、各模块详细设计 ### 1. hm-gateway(网关服务) - **作用**:统一API入口,路由转发、权限校验、限流、熔断等。 - **技术**:Spring Cloud Gateway - **配置**:动态路由,支持Nacos服务发现,集成JWT鉴权。 - **端口**:8080 ### 2. user-service(用户服务) - **作用**:用户注册、登录、信息管理、认证等。 - **技术**:Spring Boot + MyBatis-Plus - **数据库**:MySQL,用户表 - **接口**:RESTful风格,支持JWT鉴权 - **端口**:8081 ### 3. item-service(商品服务) - **作用**:商品信息的增删改查、库存管理、分类管理等。 - **技术**:Spring Boot + MyBatis-Plus - **数据库**:MySQL,商品表、库存表、分类表 - **接口**:RESTful风格 - **端口**:8082 ### 4. cart-service(购物车服务) - **作用**:用户购物车的增删查改,支持多用户并发操作。 - **技术**:Spring Boot + MyBatis-Plus - **数据库**:MySQL,购物车表 - **接口**:RESTful风格 - **端口**:8083 ### 5. trade-service(订单服务) - **作用**:订单创建、查询、状态流转,支持分布式事务。 - **技术**:Spring Boot + MyBatis-Plus + Seata - **数据库**:MySQL,订单表、订单明细表 - **接口**:RESTful风格 - **端口**:8084 ### 6. pay-service(支付服务) - **作用**:订单支付、支付回调、支付状态查询等。 - **技术**:Spring Boot + MyBatis-Plus - **数据库**:MySQL,支付记录表 - **接口**:RESTful风格 - **端口**:8085 ### 7. hm-common(公共模块) - **作用**:存放通用工具类、常量、枚举、全局异常处理等。 - **依赖**:被各业务模块依赖 ### 8. hm-service(业务基础服务) - **作用**:可复用的业务逻辑实现,如短信、邮件、缓存等 - **依赖**:被各业务模块依赖 ### 9. hm-api(接口聚合模块) - **作用**:定义各服务间的Feign接口,便于服务间调用 - **依赖**:被各业务模块依赖 --- ## 四、架构图 ```mermaid graph TD A[hm-gateway] --> B[user-service] A --> C[item-service] A --> D[cart-service] A --> E[trade-service] A --> F[pay-service] B & C & D & E & F --> G[Nacos/Seata/MySQL] ``` --- ## 五、更多说明 - **配置中心**:所有服务的配置文件统一由Nacos管理,支持动态刷新。 - **注册中心**:服务自动注册到Nacos,实现服务发现与负载均衡。 - **分布式事务**:订单、库存、支付等核心链路通过Seata保证数据一致性。 - **容器化部署**:一键启动,极大提升开发、测试、运维效率。 --- 如需进一步帮助,请查阅: - [README-Docker.md](./README-Docker.md) - [DEPLOYMENT.md](./DEPLOYMENT.md) - [SUMMARY.md](./SUMMARY.md)