Spring Cloud 中的 Eureka REST API 说明
🧩 什么是 Eureka REST API?
在 Spring Cloud 生态中,Eureka 是 Netflix 提供的一个服务注册与发现组件。
Eureka REST API 是 Eureka Server 提供的基于 HTTP 的接口,用于:
- 服务实例注册
- 服务心跳续约
- 服务下线注销
- 服务查询
Spring Cloud 已封装 Eureka 的调用逻辑,但我们也可以手动调用 REST API。
🔧 Eureka REST API 使用方式
1. 注册服务实例
POST /eureka/apps/{app-name}
Content-Type: application/json
请求体示例:
{
"instance": {
"hostName": "localhost",
"app": "MY-SERVICE",
"ipAddr": "127.0.0.1",
"vipAddress": "my-service",
"secureVipAddress": "my-service",
"status": "UP",
"port": {"$": 8080, "@enabled": "true"},
"dataCenterInfo": {
"@class": "com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo",
"name": "MyOwn"
}
}
}
2. 获取所有注册的应用
GET /eureka/apps
3. 获取某个服务的所有实例
GET /eureka/apps/{app-name}
4. 获取某个具体实例
GET /eureka/apps/{app-name}/{instance-id}
5. 发送心跳(续约)
PUT /eureka/apps/{app-name}/{instance-id}
6. 注销实例
DELETE /eureka/apps/{app-name}/{instance-id}
✅ 在 Spring Boot 项目中如何使用
1. 添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2. 配置 application.yml
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
3. 添加注解
@EnableEurekaClient
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
服务启动后将自动注册、续约和注销。
🧠 总结
功能 | 使用者 | 方式 |
---|---|---|
服务注册 | 服务提供者 | 自动 或 POST /eureka/apps/{app} |
服务发现 | 服务消费者 | 自动 或 GET /eureka/apps/{app} |
健康续约 | 服务提供者 | 自动 或 PUT /eureka/apps/{app}/{id} |
注销下线 | 服务提供者 | 自动 或 DELETE /eureka/apps/{app}/{id} |
如果你希望手动测试 API,可以使用 Postman 或 curl 工具。