# Spring Cloud 微服务模板项目 本项目是一个基于 Spring Cloud 的微服务架构模板,提供服务注册、配置管理、API 网关、服务间调用等核心功能,结构清晰、易于扩展,适用于快速搭建高可用的微服务系统。 ## 项目结构 ``` spring-cloud-template ├── eureka-server # 服务注册中心(Eureka Server) ├── config-server # 配置中心(Spring Cloud Config) ├── service-producer # 服务提供者(示例服务A) ├── service-consumer # 服务消费者(示例服务B) ├── api-gateway # API 网关(Spring Cloud Gateway) └── pom.xml # 父工程 POM 文件 ``` ## 核心功能 ### 1. 服务注册与发现 - 使用 Eureka Server 实现服务注册与发现 - 提供服务实例列表页面,便于监控服务状态 ### 2. 配置中心 - 使用 Spring Cloud Config 实现统一配置管理 - 支持配置的动态刷新 ### 3. 服务间调用 - 使用 OpenFeign 实现声明式服务调用 - 集成 Ribbon 实现客户端负载均衡 ### 4. API 网关 - 使用 Spring Cloud Gateway 作为统一 API 入口 - 支持路由配置和请求转发 ### 5. 服务健康检查 - 集成 Spring Boot Actuator 实现服务健康检查 - 提供监控端点,便于系统运维 ## 技术栈 - **Spring Boot**: 3.3.13 - **Spring Cloud**: 2023.0.6 - **JDK**: 21 - **Maven**: 3.x - **Eureka Server**: Netflix Eureka - **Config Server**: Spring Cloud Config - **API Gateway**: Spring Cloud Gateway - **OpenFeign**: 声明式 HTTP 客户端 - **Ribbon**: 客户端负载均衡 ## 快速开始 ### 1. 环境要求 - JDK 21 - Maven 3.x ### 2. 启动服务 #### 启动服务注册中心 (Eureka Server) ```bash cd eureka-server mvn spring-boot:run ``` #### 启动配置中心 (Config Server) ```bash cd config-server mvn spring-boot:run ``` #### 启动服务提供者 (Service Producer) ```bash cd service-producer mvn spring-boot:run ``` #### 启动服务消费者 (Service Consumer) ```bash cd service-consumer mvn spring-boot:run ``` #### 启动 API 网关 (API Gateway) ```bash cd api-gateway mvn spring-boot:run ``` ### 3. 访问服务 - Eureka Server: http://localhost:8761 - Service Producer: http://localhost:8081/api/health - Service Consumer: http://localhost:8082/api/health - API Gateway: http://localhost:8080/api/consumer/print ## 项目模块说明 ### eureka-server 服务注册中心,负责服务的注册与发现。 ### config-server 配置中心,统一管理微服务的配置信息。 ### service-producer 服务提供者示例,提供 REST API 接口。 ### service-consumer 服务消费者示例,调用其他服务提供的接口。 ### api-gateway API 网关,统一处理所有外部请求的入口。 ## 开发指南 ### 添加新服务 1. 创建新的 Maven 模块 2. 添加必要的依赖 3. 配置服务注册与发现 4. 实现业务逻辑 ### 配置管理 所有服务都通过 Spring Cloud Config 进行配置管理,配置文件位于 config-server 中。 ### 负载均衡 服务间调用使用 Ribbon 实现客户端负载均衡。