# SpringCloud **Repository Path**: bfcvs/spring-cloud ## Basic Information - **Project Name**: SpringCloud - **Description**: No description available - **Primary Language**: Unknown - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-30 - **Last Updated**: 2026-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Cloud 微服务项目 基于 Spring Cloud 的微服务架构演示项目,包含服务注册中心、订单服务和商品服务。 ## 项目架构 本项目是一个典型的 Spring Cloud 微服务架构,包含以下核心组件: | 服务 | 端口 | 说明 | |------|------|------| | eureka-server | 8761 | Eureka 服务注册中心 | | order-service | 8080 | 订单服务 | | product-service | 8081 | 商品服务 | ## 技术栈 - **Spring Boot** - 基础框架 - **Spring Cloud Netflix Eureka** - 服务注册与发现 - **Spring Cloud Ribbon** - 客户端负载均衡 - **Maven** - 项目构建 ## 模块说明 ### eureka-server(服务注册中心) - 作为服务注册中心,所有服务启动后都会注册到此处 - 提供了自定义的负载均衡器 `WebLoadBalancer` - 使用响应式编程实现服务实例选择 ### order-service(订单服务) - 订单服务,通过 `RestTemplate` + `@LoadBalanced` 调用其他服务 - 集成了服务发现,可以根据服务名调用 product-service ### product-service(商品服务) - 商品服务,提供简单的商品信息接口 - 返回服务端口号用于验证负载均衡效果 ## 快速开始 ### 环境要求 - JDK 8 或更高版本 - Maven 3.x ### 构建项目 ```bash # 在项目根目录执行 mvn clean install ``` ### 启动服务 1. 启动 Eureka 注册中心: ```bash cd eureka-server ./mvnw spring-boot:run ``` 2. 启动商品服务: ```bash cd product-service ./mvnw spring-boot:run ``` 3. 启动订单服务: ```bash cd order-service ./mvnw spring-boot:run ``` ## 服务调用 订单服务可以通过负载均衡调用商品服务: ``` GET http://localhost:8080/order ``` 商品服务接口: ``` GET http://localhost:8081/product/info ``` ## 项目结构 ``` spring-cloud/ ├── eureka-server/ # Eureka 服务注册中心 │ └── src/main/java/ │ └── com/example/eurekaserver/ │ ├── EurekaServerApplication.java │ ├── balancer/WebLoadBalancer.java │ └── config/WebLoadBalancerConfig.java ├── order-service/ # 订单服务 │ └── src/main/java/ │ └── com/example/orderservice/ │ ├── OrderServiceApplication.java │ ├── config/AppConfig.java │ └── controller/OrderController.java └── product-service/ # 商品服务 └── src/main/java/ └── com/example/productservice/ ├── ProductServiceApplication.java └── controller/ProductController.java ``` ## 负载均衡 项目集成了 Ribbon 客户端负载均衡: - `AppConfig` 中配置了 `@LoadBalanced` 的 `RestTemplate` - `WebLoadBalancer` 实现了自定义的负载均衡策略 - 服务调用时会自动根据服务名解析可用实例 ## 许可证 LGPL-3.0