# SpringCloudAlibaba **Repository Path**: erong_project/spring-cloud-alibaba ## Basic Information - **Project Name**: SpringCloudAlibaba - **Description**: 1、初始化SpringCloudAlibaba 2、SpringCloud整合Nacos 3、SpringCloud整合OpenFeifn 4、Nacos配置中心 5、SpringCloud整合Sentinel 6、SpringCloud整合Seata 7、SpringCloud整合GateWay 8、SpringCloud整合SkyWalking - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2024-11-08 - **Last Updated**: 2025-10-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 该项目是一个基于 Spring Cloud Alibaba 的微服务示例,包含订单(order)、商品(product)和库存(stock)三个核心模块,演示了微服务架构下的服务调用、负载均衡、服务熔断、分布式事务、限流降级等关键功能。 ## 简介 这是一个用于演示 Spring Cloud Alibaba 各个组件使用的示例项目。项目包含以下服务: - **订单服务(order)**:负责订单的创建、获取以及与商品和库存服务的交互。 - **商品服务(product)**:提供商品信息的查询服务。 - **库存服务(stock)**:提供库存管理功能,支持库存扣减和查询。 ## 技术栈 - Spring Boot - Spring Cloud Alibaba - Nacos(服务注册与发现) - Feign(声明式服务调用) - Sentinel(流量控制与熔断降级) - Seata(分布式事务) - MyBatis Plus - Lombok - Redis(用于限流) ## 项目结构 - `order`: 订单服务,包含订单创建、获取逻辑,使用 Feign 调用商品和库存服务。 - `product`: 商品服务,提供商品信息查询。 - `stock`: 库存服务,负责库存的查询与扣减。 - 各模块中包含标准的 Spring Boot 组件结构(Controller、Service、Mapper、FeignClient 等)。 ## 功能亮点 - **Feign 客户端调用**:使用 Feign 实现服务间通信。 - **Sentinel 流控与降级**:在订单服务中使用 Sentinel 实现限流和降级逻辑。 - **Seata 分布式事务**:使用 Seata 实现跨服务的分布式事务。 - **RestTemplate + LoadBalanced**:展示了负载均衡的 REST 调用方式。 - **Feign 拦截器**:自定义 Feign 请求拦截器,用于传递上下文信息。 - **服务熔断与降级**:Feign 客户端配置了 fallback 降级逻辑。 ## 安装与运行 ### 前提条件 - JDK 1.8 或以上 - Maven 3.x - Redis(用于 Sentinel 限流) - Nacos(服务注册与发现) - Seata(可选,用于分布式事务) ### 构建与启动 1. 启动 Nacos Server。 2. 启动 Redis。 3. 构建并运行每个模块: ```bash mvn clean install mvn spring-boot:run ``` 4. 访问订单服务接口测试微服务功能。 ## 接口示例 - 创建订单:`POST /order/addOrder` - 获取订单信息:`GET /order/get` - 扣减库存:`POST /stock/reduct` - 获取商品信息:`GET /product/get/{id}` ## 配置说明 - `application.yml` 和 `bootstrap.yml` 中包含服务的基本配置。 - Sentinel 流控规则通过代码或 Sentinel 控制台配置。 - Feign 配置在 `FeignConfig.java` 中,设置日志级别。 ## 异常处理 - 通过 `MyBlockExceptionHandler` 捕获 Sentinel 限流异常。 - Feign 调用失败时通过 `fallback` 类进行降级处理。 ## 贡献 欢迎提交 PR 或 Issue。请确保代码风格与项目一致,并提供清晰的提交信息。 ## 许可证 本项目采用 MIT 许可证。详情请查看 [LICENSE](LICENSE) 文件。 ## 联系方式 如有问题,请在 Gitee 仓库中提交 Issue。 ## 感谢 感谢 Spring Cloud Alibaba 社区与 Gitee 平台的支持。