# cloud-study **Repository Path**: sanbingdai/cloud-study ## Basic Information - **Project Name**: cloud-study - **Description**: 本人 cloud学习 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-08 - **Last Updated**: 2026-03-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Cloud Demo - Spring Cloud Alibaba 微服务示例项目 基于 Spring Cloud Alibaba 的微服务架构实战项目,整合了主流的分布式组件。 ## 项目简介 本项目是一个完整的微服务架构示例,展示了如何使用 Spring Cloud Alibaba 技术栈构建分布式系统。项目包含了服务注册发现、配置管理、服务网关、服务调用、流量控制、分布式事务等核心功能。 ## 技术栈 ### 核心框架 - **Spring Boot 3.2.0** - 应用开发框架 - **Spring Cloud Alibaba 2023.0.0.0** - 阿里巴巴微服务解决方案 - **Spring Cloud 2023.0.0** - Spring 官方云原生工具集 ### 组件与服务 - **Nacos** - 服务注册发现与配置中心 - **Gateway** - API 网关,统一入口和路由转发 - **OpenFeign** - 声明式 HTTP 客户端,服务间调用 - **Sentinel** - 流量控制与熔断降级 - **Seata** - 分布式事务解决方案 ### 其他工具 - **Lombok** - 简化 Java 代码 - **Hutool** - Java 工具类库 ## 模块说明 ``` cloud-demo/ ├── services/ │ ├── cloud-gateway/ # 网关服务 │ ├── cloud-model/ # 公共模型模块 │ ├── cloud-order/ # 订单服务 │ └── cloud-product/ # 产品服务 ├── pom.xml # 父工程 POM └── README.md # 项目说明文档 ``` ### 模块详情 #### cloud-gateway (网关服务) - 端口: 8080 - 功能: 统一入口、路由转发、请求日志记录 - 路由配置: - /order/** -> cloud-order:8081 - /product/** -> cloud-product:8082 #### cloud-model (公共模型) - 功能: 公共实体类和通用工具类 - 包含: Order、Product 实体,Result、BusinessException 通用类 #### cloud-order (订单服务) - 端口: 8081 - 功能: 订单管理、产品库存扣减 - 特性: - 多环境配置支持 (dev/sit/uat/prod) - Nacos 配置中心集成 - OpenFeign 服务调用 - Sentinel 流量控制 - Seata 分布式事务 (配置完成) #### cloud-product (产品服务) - 端口: 8082 - 功能: 产品管理、库存管理 - 特性: - 多环境配置支持 - Nacos 配置中心集成 - Sentinel 流量控制 - Seata 分布式事务 (配置完成) ## 快速开始 ### 前置要求 - JDK 17+ - Maven 3.8+ - Nacos Server 2.3.0+ - Seata Server 2.0.0+ (可选) ### 启动步骤 1. **启动 Nacos Server** ```bash cd nacos/bin # Windows startup.cmd # Linux/Mac ./startup.sh -m standalone ``` 2. **启动 Seata Server** (需要分布式事务时) ```bash cd seata/bin ./seata-server.sh -p 8091 ``` 3. **启动服务** ```bash # 方式一: 使用 Maven 启动每个服务 cd services/cloud-gateway mvn spring-boot:run cd services/cloud-order mvn spring-boot:run cd services/cloud-product mvn spring-boot:run # 方式二: 打包后启动 mvn clean package java -jar services/cloud-gateway/target/cloud-gateway.jar java -jar services/cloud-order/target/cloud-order.jar java -jar services/cloud-product/target/cloud-product.jar ``` 4. **访问服务** - Gateway: http://localhost:8080 - Order Service: http://localhost:8081 - Product Service: http://localhost:8082 - Nacos Console: http://localhost:8848/nacos ## 功能特性 ### 1. 服务注册与发现 - 使用 Nacos 作为注册中心 - 服务自动注册与发现 - 健康检查机制 ### 2. 配置管理 - Nacos 配置中心集成 - 多环境配置 (dev/sit/uat/prod) - 配置动态刷新与监听 ### 3. 服务网关 - 路由转发与负载均衡 - 全局日志过滤器 - 统一入口管理 ### 4. 服务调用 - OpenFeign 声明式调用 - 集成 Sentinel 实现熔断降级 - Fallback 机制 ### 5. 流量控制 - Sentinel 流量限制 - 熔断降级策略 - 自定义 BlockHandler ### 6. 分布式事务 - Seata AT 模式配置 - @GlobalTransactional 注解支持 - 两阶段提交保证数据一致性 ## 测试接口 ### 订单服务 - 创建订单: `POST http://localhost:8081/order/create` - 查询订单: `GET http://localhost:8081/order/{id}` - 环境信息: `GET http://localhost:8081/env` ### 产品服务 - 产品列表: `GET http://localhost:8082/product/list` - 产品详情: `GET http://localhost:8082/product/{id}` - 减少库存: `POST http://localhost:8082/product/reduceStock` - 环境信息: `GET http://localhost:8082/env` ### 网关服务 - 订单服务: `http://localhost:8080/order/**` - 产品服务: `http://localhost:8080/product/**` ## 项目结构 ``` src/main/java/com/lx/{service}/ ├── config/ # 配置类 ├── controller/ # 控制器 ├── exception/ # 异常处理 ├── feign/ # Feign 客户端 ├── service/ # 业务逻辑 └── {Service}Application.java # 启动类 ``` ## 配置说明 ### Nacos 配置 所有服务配置已上传到 Nacos 配置中心,包括: - 数据源配置 - Seata 配置 - 业务参数配置 配置文件命名规范: `{service-name}.yml` ### 多环境配置 项目支持多环境配置,通过 `spring.profiles.active` 切换: - dev: 开发环境 - sit: 测试环境 - uat: 预生产环境 - prod: 生产环境 ## 常见问题 ### 1. Nacos 连接失败 - 检查 Nacos Server 是否启动 - 确认配置文件中的 Nacos 地址和端口 ### 2. 服务调用失败 - 检查目标服务是否正常启动 - 确认服务是否注册到 Nacos - 查看网关路由配置是否正确 ### 3. Seata 分布式事务 - 确保 Seata Server 已启动 - 检查数据库是否已创建 undo_log 表 - 确认配置文件中的 Seata 相关配置 ## 学习资源 - [Spring Cloud Alibaba 官方文档](https://sca.aliyun.com/) - [Nacos 官方文档](https://nacos.io/) - [Sentinel 官方文档](https://sentinelguard.io/) - [Seata 官方文档](https://seata.io/) ## 面试指南 项目配套面试手册: [INTERVIEW-HANDBOOK.md](INTERVIEW-HANDBOOK.md) 涵盖以下技术点: - Spring Boot 自动配置 - Spring Cloud Alibaba 核心组件 - 微服务架构设计 - 分布式事务 - 服务治理 - 高并发处理 - 设计模式应用 ## 版本历史 - **v1.0.0** (2025-03-08) - 初始版本 - 集成 Nacos、Gateway、OpenFeign、Sentinel - 配置 Seata 分布式事务 - 完善多环境支持 ## 许可证 MIT License ## 联系方式 - 作者: sanbingdai - Gitee: https://gitee.com/sanbingdai/cloud-study --- **注**: 本项目仅用于学习和演示目的,生产环境使用请根据实际需求进行调整。