# 图灵-商城微服务版本 **Repository Path**: chengxuyuanguashu/tuling-mall-springcloud ## Basic Information - **Project Name**: 图灵-商城微服务版本 - **Description**: 图灵商城(TulingMall)是一个基于SpringCloud Alibaba构建的企业级微服务电商平台,采用了时下最流行的微服务架构技术栈,以Spring Cloud Alibaba为核心,整合了OAuth2、Nacos、Sentinel、RocketMQ、Seata等分布式解决方案。项目涵盖了电商核心业务,包括商品管理、订单管理、购物车、支付流程、会员管理、优惠营销等模块,同时提供了多个技术 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 2 - **Created**: 2024-01-17 - **Last Updated**: 2025-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: 付费项目, java项目, 微服务 ## README # 图灵商城微服务系统 (TulingMall Microservice System) ## 项目介绍 (Project Introduction) 图灵商城是一个基于SpringCloud Alibaba的微服务电商系统,采用了当前主流的微服务架构技术栈,支持高并发、分布式事务、秒杀等场景。本项目适合想要学习和实践微服务架构的开发者参考学习。 ## 技术栈 (Technology Stack) - 微服务框架:SpringCloud Alibaba - 注册中心&配置中心:Nacos - 网关:Spring Cloud Gateway - 缓存:Redis (多级缓存) - 消息队列:RocketMQ - 搜索引擎:Elasticsearch - 数据库:MySQL (分库分表) - 数据同步:Canal - 认证授权:Spring Security + JWT - 接口文档:Swagger - 负载均衡:LVS/SLB ## 系统架构 (System Architecture) ### 1. 整体架构 ![架构图](Document/tuling-mall商城微服务架构图.jpg) 系统采用微服务架构设计,主要分为以下几层: - **接入层**:DNS域名解析 + LVS/SLB负载均衡 - **网关层**:Spring Cloud Gateway,负责路由转发、认证授权 - **服务层**:各个业务微服务 - **中间件层**:Redis集群、Elasticsearch、RocketMQ等 - **数据层**:MySQL主从复制、分库分表 ### 2. 核心业务流程 #### 2.1 异步下单流程 ![异步下单流程](Document/异步下单流程链路分析.jpg) - 异步下单请求处理 - 订单状态流转管理 - 库存锁定与释放机制 - 超时订单处理 #### 2.2 多级缓存架构 ![缓存一致性](Document/多级缓存数据一致性保证方案图.jpg) - 本地缓存(一级缓存) - Redis分布式缓存(二级缓存) - 数据库持久化存储 - 缓存更新策略 #### 2.3 数据同步方案 ![数据同步](Document/阿里Canal多中间件数据一致性实战应用.jpg) - MySQL binlog日志采集 - Canal数据解析转换 - 多中间件数据同步 - 最终一致性保证 ## 功能模块 (Functional Modules) ### 1. 基础服务 - `tulingmall-common`: 公共模块,工具类和通用配置 - `tulingmall-mbg`: MyBatis Generator 生成的数据访问层 - `tulingmall-security`: 安全认证模块 - `tulingmall-gateway`: 网关服务 - `tulingmall-authcenter`: 统一认证中心 ### 2. 业务服务 - `tulingmall-admin`: 后台管理服务 - `tulingmall-product`: 商品服务 - `tulingmall-order`: 订单服务 - `tulingmall-order-sharding`: 订单分库分表服务 - `tulingmall-member`: 会员服务 - `tulingmall-coupons`: 优惠券服务 - `tulingmall-search`: 商品搜索服务 - `tulingmall-seckill`: 秒杀服务 - `tulingmall-portal`: 商城门户服务 ### 3. 中间件服务 - `tulingmall-canal`: 数据同步服务 ## 环境部署 (Deployment) ### 1. 开发环境要求 - JDK 1.8+ - Maven 3.6+ - MySQL 5.7+ - Redis 5.0+ - Elasticsearch 7.x - RocketMQ 4.x - Nacos 2.x - Canal 1.1.x ### 2. 快速启动 #### 2.1 基础环境配置 1. **配置host** ``` 127.0.0.1 tlshop.com ``` 2. **导入Nacos配置** - 导入配置文件:`document/nacos-config/nacos_config_export.zip` - 无需解压,直接在Nacos控制台导入 3. **数据库初始化** - 执行数据库脚本: - 基础数据库脚本:`Document/sql/micromall.sql` - 秒杀模块脚本:`Document/sql/micromall-miaosha-back.sql` - 压测数据脚本:`Document/sql/micromall-jmeter压测请导入.sql` - 配置数据库连接信息(默认配置): ```properties spring.datasource.url=jdbc:mysql://localhost:3306/micromall?serverTimezone=UTC&useSSL=false spring.datasource.username=root spring.datasource.password=root ``` #### 2.2 服务启动顺序 1. 启动Nacos注册中心 2. 启动RocketMQ 3. 启动Redis、Elasticsearch等中间件 4. 启动Gateway网关服务 5. 启动认证中心服务 6. 启动其他业务服务 ### 3. 关键配置说明 #### 3.1 RocketMQ配置 在Nacos配置中心修改`tulingmall-order-dev.yml`: ```yaml rocketmq: name-server: 192.168.232.198:9876 producer: send-message-timeout: 30000 group: order-group tulingmall: scheduleTopic: order-status-check cancelGroup: cancel-order transGroup: cart-delete transTopic: order-cart asyncOrderTopic: async-order asyncOrderGroup: async-order-group ``` #### 3.2 其他中间件配置 ##### Redis集群配置 ```yaml spring: redis: host: localhost port: 6379 password: timeout: 3000ms lettuce: pool: max-active: 8 max-wait: -1ms max-idle: 8 min-idle: 0 ``` ##### Elasticsearch配置 ```yaml spring: elasticsearch: rest: uris: http://localhost:9200 ``` ##### Canal同步配置 ```yaml canal: server: host: localhost port: 11111 destination: example database: micromall ``` ## 项目文档 (Documentation) - 接口文档地址:启动项目后访问 http://localhost:8080/swagger-ui.html - 部署文档:参考本文档的环境部署章节 - 开发文档:参考项目根目录下的Document目录 ## 功能演示 (Demo) - 演示地址:http://localhost:8080 - 测试账号: - 管理员账号:admin/123456 - 测试账号:test/123456 ## 开发指南 (Development Guide) ### 代码规范 - 遵循阿里巴巴Java开发规范 - 使用统一的代码格式化模板 - 类、方法、变量命名要规范,见名知意 - 必须添加注释,特别是业务逻辑复杂的地方 - 保持代码简洁,避免冗余代码 ### 开发流程 1. 从主分支拉取最新代码 2. 创建功能分支(feature/xxx)或修复分支(fix/xxx) 3. 开发完成后进行自测 4. 提交Pull Request 5. Code Review通过后合并到主分支 ### 提交规范 提交信息格式:`type(scope): subject` type类型: - feat:新功能 - fix:修复Bug - docs:文档更新 - style:代码格式(不影响功能) - refactor:重构 - test:测试相关 - chore:构建过程或辅助工具的变动 示例: ``` feat(order): 添加订单自动取消功能 fix(user): 修复用户注册时密码加密问题 docs(readme): 更新部署文档 ``` ## 贡献指南 (Contributing) 我们非常欢迎您的贡献,您可以通过以下方式参与项目: 1. 提交Issue反馈问题 2. 提交Pull Request完善功能 3. 参与项目讨论,提供建议和想法 贡献流程: 1. Fork 本仓库 2. 新建分支 `git checkout -b feature/xxx` 3. 提交代码 `git commit -am 'feat(xxx): add some feature'` 4. 推送到分支 `git push origin feature/xxx` 5. 提交 Pull Request ## 版权说明 (License) 本项目采用 [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) 开源协议。 ## 联系我们 (Contact) - 项目维护:程序员码龙 - 技术支持邮箱:longzhutengyue@163.com ## 交流群 扫描下方二维码添加微信,备注"图灵商城"加入项目交流群: ![联系方式](Document/联系.png)