# cloud-platform-eureka-server **Repository Path**: chenqian1995/cloud-platform-eureka-server ## Basic Information - **Project Name**: cloud-platform-eureka-server - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-18 - **Last Updated**: 2026-05-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Cloud Platform Demo Services 基于 Spring Boot 1.5.6 的服务提供者与消费者 Demo ## 项目结构 ``` cloud-platform-demo/ ├── service-provider/ # 服务提供者(端口 8080) │ ├── pom.xml │ └── src/ │ ├── main/java/com/example/provider/ │ │ ├── ServiceProviderApplication.java │ │ └── controller/HelloController.java │ ├── main/resources/application.yml │ └── test/... │ └── service-consumer/ # 服务消费者(端口 8081) ├── pom.xml └── src/ ├── main/java/com/example/consumer/ │ ├── ServiceConsumerApplication.java │ ├── config/RestTemplateConfig.java │ └── controller/ConsumerController.java ├── main/resources/application.yml └── test/... ``` ## 服务说明 ### 服务提供者 (service-provider) | 接口 | 方法 | 返回 | |------|------|------| | `/hello` | GET | "Hello World" | | `/health` | GET | "OK" | **端口**: 8080 **服务名**: SERVICE-PROVIDER ### 服务消费者 (service-consumer) | 接口 | 方法 | 返回 | |------|------|------| | `/call-hello` | GET | "Server + Hello World" | | `/health` | GET | "OK" | **端口**: 8081 **服务名**: SERVICE-CONSUMER ## 快速开始 ### 前提条件 确保 Eureka Server 已启动: ```bash # 启动 Eureka Server(端口 8761) cd ../eureka-auth-server mvn spring-boot:run ``` ### 启动服务提供者 ```bash cd service-provider mvn spring-boot:run ``` ### 启动服务消费者 ```bash cd service-consumer mvn spring-boot:run ``` ### 验证服务 ```bash # 1. 直接调用提供者 curl http://localhost:8080/hello # 返回:Hello World # 2. 通过消费者调用(服务发现 + 负载均衡) curl http://localhost:8081/call-hello # 返回:Server + Hello World # 3. 查看 Eureka Dashboard # 浏览器访问:http://localhost:8761/ # 用户名:admin,密码:admin123 # 应看到 SERVICE-PROVIDER 和 SERVICE-CONSUMER 两个服务 ``` ## 运行测试 ### 测试服务提供者 ```bash cd service-provider mvn test ``` ### 测试服务消费者 ```bash cd service-consumer mvn test ``` ## 技术栈 - Spring Boot: 1.5.6.RELEASE - Spring Cloud: Dalston.SR2 - JDK: 1.8 - Eureka: 服务注册与发现 - RestTemplate + @LoadBalanced: 客户端负载均衡 ## 架构图 ``` ┌─────────────────┐ │ Eureka Server │ │ (port 8761) │ └────────┬────────┘ │ ┌────┴────┐ │ │ ▼ ▼ ┌──────────┐ ┌──────────┐ │ Provider │ │ Consumer │ │ :8080 │ │ :8081 │ └──────────┘ └──────────┘ │ │ └──────┬───────┘ │ ▼ /call-hello → /hello ← "Hello World" → "Server + Hello World" ``` ## 配置说明 ### Eureka 认证配置 两个服务都配置了 Eureka Server 的认证信息: ```yaml eureka: client: service-url: defaultZone: http://admin:admin123@localhost:8761/eureka/ ``` 如需修改用户名密码,请同步修改 Eureka Server 的 `application.yml`。 ### 服务发现 消费者通过服务名调用提供者: ```java restTemplate.getForObject("http://SERVICE-PROVIDER/hello", String.class); ``` `@LoadBalanced` 注解使 RestTemplate 支持: - 服务名解析(通过 Eureka) - 客户端负载均衡(Ribbon) ## 常见问题 ### Q: 服务注册失败? A: 检查 Eureka Server 是否启动,确认用户名密码正确。 ### Q: 消费者调用超时? A: 确保提供者已启动并注册成功,查看 Eureka Dashboard 确认服务状态。 ### Q: 端口冲突? A: 修改 `application.yml` 中的 `server.port`。 ## 扩展建议 1. **添加 Hystrix 熔断**:增强服务调用容错能力 2. **多实例部署**:启动多个提供者实例测试负载均衡 3. **添加 Actuator**:监控服务健康状态 4. **配置中心**:使用 Spring Cloud Config 统一管理配置