# cloud2024 **Repository Path**: begain/cloud2024 ## Basic Information - **Project Name**: cloud2024 - **Description**: https://www.bilibili.com/video/BV1gW421P7RD/?p=146 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-01 - **Last Updated**: 2026-06-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Cloud2024 分布式微服务架构项目 Cloud2024 是一个基于 Spring Cloud + Spring Cloud Alibaba 的完整分布式微服务架构演示项目,涵盖服务注册与发现、负载均衡、API网关、分布式事务、服务降级与限流等核心微服务架构特性。 ## 项目架构 ### 技术栈 | 组件 | 技术方案 | |------|----------| | 微服务框架 | Spring Cloud | | 服务注册与发现 | Consul / Nacos | | 负载均衡 | Spring Cloud LoadBalancer | | API网关 | Spring Cloud Gateway | | 分布式事务 | Seata | | 服务降级/限流 | Sentinel | | 配置中心 | Nacos | | API文档 | Swagger3 | | 数据访问 | MyBatis Plus | ### 模块结构 ``` cloud2024 ├── cloud-api-commons # 公共API模块(Feign接口、实体类、响应封装) ├── cloud-consumer-order80 # 消费者服务(RestTemplate) ├── cloud-consumer-feign-order80 # 消费者服务(OpenFeign) ├── cloud-gateway9527 # Spring Cloud Gateway网关 ├── cloud-provider-payment8001 # 支付服务提供者(8001) ├── cloud-provider-payment8002 # 支付服务提供者(8002) ├── cloudalibaba-* # Alibaba组件相关模块 ├── mybatis_generator2024 # MyBatis代码生成器 └── seata-* # Seata分布式事务服务 ``` ## 核心功能 ### 1. 服务注册与发现 - 支持 Consul、Nacos 作为注册中心 - 服务自动注册与发现 ### 2. 服务调用 - **RestTemplate方式**:cloud-consumer-order80 - **OpenFeign方式**:cloud-consumer-feign-order80(支持声明式服务调用) ### 3. API网关 - 动态路由、过滤器、Predicate断言 - 自定义全局过滤器和路由断言工厂 ### 4. 分布式事务(Seata) - AT模式分布式事务 - 订单、库存、账户三服务协调 ### 5. 服务保护(Sentinel) - 熔断降级(CircuitBreaker) - 线程池隔离(Bulkhead) - 限流(RateLimiter) - Sentinel Gateway整合 ### 6. 配置管理(Nacos) - Nacos配置中心 - 动态配置刷新(@RefreshScope) ## 快速开始 ### 环境要求 - JDK 1.8+ - Maven 3.x - MySQL 5.7+ - Consul / Nacos(可选) ### 启动顺序 1. **启动注册中心**(Consul或Nacos) 2. **启动服务提供者** - `cloud-provider-payment8001` - `cloud-provider-payment8002` 3. **启动网关** - `cloud-gateway9527` 4. **启动消费者** - `cloud-consumer-order80` - `cloud-consumer-feign-order80` ### 端口规划 | 服务 | 端口 | |------|------| | Payment Provider 1 | 8001 | | Payment Provider 2 | 8002 | | Order Consumer | 80 | | Feign Order Consumer | 80 | | Gateway | 9527 | | Sentinel Dashboard | 8401 | | Sentinel Gateway | 9528 | | Nacos Config Client | 3377 | | Nacos Order Consumer | 83 | | Nacos Payment Provider | 9001 | | Seata Order Service | 2001 | | Seata Storage Service | 2002 | | Seata Account Service | 2003 | ## API接口 ### 支付服务(Payment) ``` GET /pay/get/{id} # 根据ID查询 POST /pay/add # 新增支付 PUT /pay/update # 修改支付 DELETE /pay/del/{id} # 删除支付 GET /pay/list # 查询列表 ``` ### 订单服务(Order) ``` GET /consumer/pay/add # 新增订单 GET /consumer/pay/del/{id} # 删除订单 GET /consumer/pay/update # 更新订单 GET /consumer/pay/get/{id} # 查询订单 ``` ### 网关服务 ``` GET /feign/pay/gateway/get/{id} # 网关调用 GET /feign/pay/gateway/info # 网关信息 ``` ## 配置说明 主要配置文件位于各模块的 `src/main/resources/application.yml` 和 `bootstrap.yml`: ```yaml spring: application: name: cloud-payment-service cloud: consul: host: localhost port: 8500 discovery: service-name: ${spring.application.name} ``` ## 扩展特性 ### 自定义网关过滤器 项目提供了自定义网关过滤器实现: - `MyGlobalFilter`:全局请求日志记录 - `MyGatewayFilterFactory`:自定义过滤器工厂 - `MyRoutePredicateFactory`:自定义路由断言 ### Sentinel整合 - 支持URL限流和资源限流 - 热Key检测 - 授权规则(来源控制) - 自定义降级和熔断处理 ## 项目特点 1. **完整的企业级微服务架构**:覆盖微服务开发的各个层面 2. **Alibaba组件整合**:深度集成Nacos、Sentinel、Seata 3. **多种调用方式**:RestTemplate、OpenFeign对比演示 4. **服务保护**:熔断、隔离、限流完整实现 5. **分布式事务**:Seata AT模式实践 ## License 本项目仅供学习交流使用。