Eureka由Netflix公司实现并开源,Negflix Eureka的原始REST API接口可以参考:https://github.com/Netflix/eureka/wiki/Eureka-REST-operations
Spring Cloud集成Netflix Eureka之后,其对外提供的REST API与原始Neflix对外提供的API有一点点差别,即将请求路径中的{version}值去掉。
例如:
注册某个实例到eureka server:原始Netflix Eureka提供的接口为: /eureka/v2/apps/{appID}
Spring Cloud Eureka对外提供的接口为: /eureka/apps/{appID}
Spring Cloud Eureka Server Rest API如下:
操作 | Method | 描述 | Path |
---|---|---|---|
注册新的应用实例 | Post | 成功返回HTTP Code:204 | /eureka/apps/{appId} |
注销某个实例 | DELETE | 成功返回HTTP Code: 200 | /eureka/apps/{appId}/{instanceId} |
应用实例发送心跳 | PUT | 成功返回: 200 ,如果实例不存在返回:404 | /eureka/apps/{appId}/{instanceId} |
查询所有实例 | GET | 成功返回: 200 | /eureka/apps |
查询指定appId的实例 | GET | 成功返回:200 | /eureka/apps/{appId} |
查询某个appId和instanceId | GET | 成功返回: 200 | /eureka/apps/{appId}/{instanceId} |
根据指定instanceId查询 | GET | 成功返回:200 | /eureka/instanceId/{instanceId} |
暂停应用实例 | PUT | 成功:200,失败:500 | /eureka/apps/{appId}/{instanceId}/status?value=OUT_OF_SERVICE |
恢复应用实例 | DELETE | 成功:200,失败:500 | /eureka/apps/{appId}/{instanceId}/status?value=UP |
更新元数据 | PUT | 成功:200,失败:500 | /eureka/apps/{appId}/{instanceId}/metadata?key=value |
根据vip地址查询 | GET | 成功:200,该vipAddress不存在则返回:404 | /eureka/v2/vips/{vipAddress} |
根据svip地址查询 | GET | 成功:200,不存在返回:404 | /eureka/v2/vips/{svipAddress} |
以上接口中如果请求体需要参数,则需要设置请求头Content-Type的值为application/json 或者 application/xml
注册新的应用实例请求参数(参考示例):
{
"instance": {
"instanceId": "test-instance-1",
"hostName": "localhost",
"app": "test",
"ipAddr": "127.0.0.1",
"status": "UP",
"port": {
"$": 28000,
"@enabled": true
},
"dataCenterInfo": {
"@class": "com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo",
"name": "MyOwn"
},
"leaseInfo": {
"renewalIntervalInSecs": 30,
"durationInSecs": 90
},
"metadata": {
"management.port": "28000"
},
"vipAddress": "test",
"secureVipAddress": "test",
"lastUpdatedTimestamp": "1621849488060",
"lastDirtyTimestamp": "1621849488060"
}
}
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。