# springcloud2022 **Repository Path**: thin-rain/springcloud2022 ## Basic Information - **Project Name**: springcloud2022 - **Description**: 从0开始搭建cloud项目,组件有Eureka、Spring Cloud Config、OpenFeign、LoadBalancer、Hystrix、Gateway。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-05-16 - **Last Updated**: 2026-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpringCloud2022 微服务架构项目 ## 项目简介 SpringCloud2022 是一个基于 Spring Cloud 微服务架构的教学演示项目,展示了现代微服务架构的核心组件和关键技术。 ## 系统架构 本项目包含以下几个核心微服务模块: ### 1. 服务注册中心 | 模块 | 端口 | 说明 | |------|------|------| | eureka7001 | 7001 | Eureka 服务注册中心(主节点) | | eureka7002 | 7002 | Eureka 服务注册中心(从节点,高可用) | | consul8011 | 8011 | Consul 服务注册中心 | ### 2. 配置中心 | 模块 | 端口 | 说明 | |------|------|------| | config7000 | 7000 | Spring Cloud Config 配置中心 | ### 3. 服务提供者 | 模块 | 端口 | 说明 | |------|------|------| | provide8001 | 8001 | 订单服务提供者 | | provide8002 | 8002 | 订单服务提供者(集群) | ### 4. 服务消费者 | 模块 | 端口 | 说明 | |------|------|------| | consumer80 | 80 | 消费者服务(集成 OpenFeign) | | consumer-hystrix80 | 80 | 消费者服务(集成 Hystrix 熔断器) | | consumer8081 | 8081 | 消费者服务(基础 RestTemplate) | ### 5. API 网关 | 模块 | 端口 | 说明 | |------|------|------| | gateway8888 | 8888 | Spring Cloud Gateway 网关 | ## 技术栈 - **Spring Boot**:微服务基础框架 - **Spring Cloud**:微服务整体解决方案 - **Eureka**:服务注册与发现 - **Consul**:另一个服务注册与发现解决方案 - **Spring Cloud Config**:分布式配置中心 - **OpenFeign**:声明式服务调用 - **Ribbon / LoadBalancer**:客户端负载均衡 - **Hystrix**:熔断器和服务降级 - **Spring Cloud Gateway**:API 网关 ## 快速开始 ### 环境要求 - JDK 1.8+ - Maven 3.0+ ### 启动顺序 建议按以下顺序启动各服务: 1. 启动 `eureka7001` 和 `eureka7002`(高可用注册中心) 2. 启动 `config7000`(配置中心) 3. 启动 `provide8001` 和 `provide8002`(服务提供者) 4. 启动消费者服务(consumer80 / consumer-hystrix80) 5. 启动 `gateway8888`(API 网关) ### 构建项目 ```bash mvn clean package ``` ### 运行单个服务 进入对应模块目录执行: ```bash mvn spring-boot:run ``` ## 功能演示 ### 服务调用 通过消费者服务调用订单接口: ```bash # 使用 Ribbon 负载均衡 curl http://localhost:80/getOrder # 使用 OpenFeign curl http://localhost:80/getOrderOpenFeign ``` ### Hystrix 熔断演示 访问带超时控制的接口,触发熔断降级: ```bash curl http://localhost:80/timeOutOpenFeign ``` ### 服务发现 ```bash # 查看服务注册信息 curl http://localhost:8001/discoveryInfo ``` ### API 网关 通过网关访问后端服务: ```bash curl http://localhost:8888/provider/order ``` ## 项目结构 ``` springcloud2022/ ├── eureka7001/ # Eureka注册中心-7001 ├── eureka7002/ # Eureka注册中心-7002 ├── config7000/ # 配置中心 ├── consul8011/ # Consul注册中心 ├── provide8001/ # 服务提供者-8001 ├── provide8002/ # 服务提供者-8002 ├── consumer80/ # 消费者-OpenFeign ├── consumer-hystrix80/ # 消费者-Hystrix ├── consumer8081/ # 消费者-RestTemplate └── gateway8888/ # API网关 ``` ## 学习要点 1. **服务注册与发现**:理解 Eureka 和 Consul 的工作原理 2. **负载均衡**:Ribbon 和 Spring Cloud LoadBalancer 的使用 3. **服务调用**:OpenFeign 声明式 REST 客户端 4. **熔断器机制**:Hystrix 的服务降级和熔断 5. **配置管理**:Spring Cloud Config 集中化配置 6. **网关路由**:Gateway 的路由和过滤功能 ## 许可证 本项目仅供学习交流使用。