What is Eureka REST API?





Eureka REST API in Spring Cloud


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 工具。


Leave a Comment

Your email address will not be published. Required fields are marked *