Eureka Rest接口文档
版本说明
Eureka1.6.2
服务注册
接口地址: /eureka/v2/apps/appID
调用方式:POST
源码地址:com.netflix.eureka.resources.ApplicationResource.addInstance()
返回接口:HTTPCode: 204 为成功
接口说明:据官方文档介绍,该接口是为了注册一个全局应用,目前暂未发现在哪里使用。
调用说明:
地址:http://server1:7010/eureka/apps/EUREKA-D
Content-Type : application/xml
参数如下:
<instance>
<!--实例ID -->
<instanceId>10.208.204.119:7011</instanceId>
<!--实例HOST -->
<hostName>10.208.204.119</hostName>
<!--全局应用名 -->
<app>EUREKA-D</app>
<!--IP地址 -->
<ipAddr>10.208.204.119</ipAddr>
<!--实例状态 -->
<status>UP</status>
<!--实例的覆盖状态 -->
<overriddenstatus>UNKNOWN</overriddenstatus>
<!--端口 -->
<port enabled="true">7003</port>
<securePort enabled="false">443</securePort>
<countryId>1</countryId>
<!--使用的数据中心 -->
<dataCenterInfo class="com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo">
<name>MyOwn</name>
</dataCenterInfo>
<!--监控端口 -->
<metadata>
<management.port>17003</management.port>
</metadata>
<!--主页 -->
<homePageUrl>http://10.208.204.119:7003/</homePageUrl>
<!--信息查询接口 -->
<statusPageUrl>http://10.208.204.119:17003/info</statusPageUrl>
<!--健康检查接口 -->
<healthCheckUrl>http://10.208.204.119:17003/health</healthCheckUrl>
<!--VIP -->
<vipAddress>eureka-c</vipAddress>
<secureVipAddress>eureka-c</secureVipAddress>
<isCoordinatingDiscoveryServer>false</isCoordinatingDiscoveryServer>
<!--最后修改时间 -->
<lastDirtyTimestamp>1528277019770</lastDirtyTimestamp>
</instance>
服务下线
接口地址: /eureka/apps/appID/instanceID
调用方式:DELETE
源码地址:com.netflix.eureka.resources.InstanceResource.cancelLease()
返回状态:HTTPCode: 200 为成功
接口说明:调用该接口,可以直接将服务下线。只不过下次心跳又会注册上来。
调用说明:
地址:http://server1:7010/eureka/apps/EUREKA-D/10.208.204.119:7011
Content-Type : application/xml
心跳续约
接口地址: /eureka/apps/appID/instanceID
调用方式:PUT
源码地址:com.netflix.eureka.resources.InstanceResource.renewLease()
返回状态:
HTTPCode: 200 为成功
HTTPCode: 404 续约失败,重新注册
接口说明:调用该接口进行心跳续约
调用说明:
地址:http://server1:7010/eureka/apps/EUREKA-D/10.208.204.119:7011
Content-Type : application/xml
获取所有注册信息
接口地址: /eureka/apps
调用方式:GET
源码地址:com.netflix.eureka.resources.ApplicationsResource.getContainers()
返回状态:
HTTPCode: 200 为成功
接口说明:可以获取该Eureka Server上所有的注册信息
调用说明:
地址:http://server1:7010/eureka/apps
返回结果
<applications>
<versions__delta>1</versions__delta>
<!--HASHCODE -->
<apps__hashcode>UP_6_</apps__hashcode>
<application>
<name>EUREKA-B</name>
<instance>
<!--实例ID -->
<instanceId>10.208.204.119:7011</instanceId>
<!--实例HOST -->
<hostName>10.208.204.119</hostName>
<!--全局应用名 -->
<app>EUREKA-D</app>
<!--IP地址 -->
<ipAddr>10.208.204.119</ipAddr>
<!--实例状态 -->
<status>UP</status>
<!--实例的覆盖状态 -->
<overriddenstatus>UNKNOWN</overriddenstatus>
<!--端口 -->
<port enabled="true">7003</port>
<securePort enabled="false">443</securePort>
<countryId>1</countryId>
<!--使用的数据中心 -->
<dataCenterInfo class="com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo">
<name>MyOwn</name>
</dataCenterInfo>
<!--租约信息 -->
<leaseInfo>
<!--心跳间隔 -->
<renewalIntervalInSecs>30</renewalIntervalInSecs>
<!--实例过期时间 -->
<durationInSecs>90</durationInSecs>
<!--注册时间 -->
<registrationTimestamp>1528277046826</registrationTimestamp>
<!--最后一次续约时间 -->
<lastRenewalTimestamp>1528277985101</lastRenewalTimestamp>
<!--实例最后一次下线时间 -->
<evictionTimestamp>0</evictionTimestamp>
<!--服务启动时间 -->
<serviceUpTimestamp>1528276042944</serviceUpTimestamp>
</leaseInfo>
<metadata>
<management.port>17003</management.port>
</metadata>
<!--主页 -->
<homePageUrl>http://10.208.204.119:7003/</homePageUrl>
<!--信息查询接口 -->
<statusPageUrl>http://10.208.204.119:17003/info</statusPageUrl>
<!--健康检查接口 -->
<healthCheckUrl>http://10.208.204.119:17003/health</healthCheckUrl>
<!--VIP -->
<vipAddress>eureka-c</vipAddress>
<secureVipAddress>eureka-c</secureVipAddress>
<isCoordinatingDiscoveryServer>false</isCoordinatingDiscoveryServer>
<!--最后更新时间 , 用于判断是否过期 -->
<lastUpdatedTimestamp>1528277046826</lastUpdatedTimestamp>
<!--最后修改时间,用于判断信息的新旧 -->
<lastDirtyTimestamp>1528277019770</lastDirtyTimestamp>
<!--最后修改时间 -->
<actionType>ADDED</actionType>
</instance>
</application>
</applications>
获取某个应用下所有实例信息
接口地址: /eureka/apps/appID
调用方式:GET
源码地址:com.netflix.eureka.resources.ApplicationsResource.getApplicationResource()
返回状态:
HTTPCode: 200 为成功
接口说明:可以获取某个应用下所有的机器信息。
调用说明:
地址:http://server1:7010/eureka/apps/EUREKA-A
返回结果
<application>
<name>EUREKA-B</name>
<instance>
<!--实例ID -->
<instanceId>10.208.204.119:7011</instanceId>
<!--实例HOST -->
<hostName>10.208.204.119</hostName>
<!--全局应用名 -->
<app>EUREKA-D</app>
<!--IP地址 -->
<ipAddr>10.208.204.119</ipAddr>
<!--实例状态 -->
<status>UP</status>
<!--实例的覆盖状态 -->
<overriddenstatus>UNKNOWN</overriddenstatus>
<!--端口 -->
<port enabled="true">7003</port>
<securePort enabled="false">443</securePort>
<countryId>1</countryId>
<!--使用的数据中心 -->
<dataCenterInfo class="com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo">
<name>MyOwn</name>
</dataCenterInfo>
<!--租约信息 -->
<leaseInfo>
<!--心跳间隔 -->
<renewalIntervalInSecs>30</renewalIntervalInSecs>
<!--实例过期时间 -->
<durationInSecs>90</durationInSecs>
<!--注册时间 -->
<registrationTimestamp>1528277046826</registrationTimestamp>
<!--最后一次续约时间 -->
<lastRenewalTimestamp>1528277985101</lastRenewalTimestamp>
<!--实例最后一次下线时间 -->
<evictionTimestamp>0</evictionTimestamp>
<!--服务启动时间 -->
<serviceUpTimestamp>1528276042944</serviceUpTimestamp>
</leaseInfo>
<metadata>
<management.port>17003</management.port>
</metadata>
<!--主页 -->
<homePageUrl>http://10.208.204.119:7003/</homePageUrl>
<!--信息查询接口 -->
<statusPageUrl>http://10.208.204.119:17003/info</statusPageUrl>
<!--健康检查接口 -->
<healthCheckUrl>http://10.208.204.119:17003/health</healthCheckUrl>
<!--VIP -->
<vipAddress>eureka-c</vipAddress>
<secureVipAddress>eureka-c</secureVipAddress>
<isCoordinatingDiscoveryServer>false</isCoordinatingDiscoveryServer>
<!--最后更新时间 , 用于判断是否过期 -->
<lastUpdatedTimestamp>1528277046826</lastUpdatedTimestamp>
<!--最后修改时间,用于判断信息的新旧 -->
<lastDirtyTimestamp>1528277019770</lastDirtyTimestamp>
<!--最后修改时间 -->
<actionType>ADDED</actionType>
</instance>
</application>
获取某个应用下指定的实例
接口地址: /eureka/apps/appID/instanceID
调用方式:GET
源码地址:com.netflix.eureka.resources.ApplicationsResource.getApplicationResource()
返回状态:
HTTPCode: 200 为成功
接口说明:可以获取某个应用下所有的机器信息。
调用说明:
地址:http://server1:7010/eureka/apps/EUREKA-A/10.208.204.119:7002
返回结果
<instance>
<!--实例ID -->
<instanceId>10.208.204.119:7011</instanceId>
<!--实例HOST -->
<hostName>10.208.204.119</hostName>
<!--全局应用名 -->
<app>EUREKA-D</app>
<!--IP地址 -->
<ipAddr>10.208.204.119</ipAddr>
<!--实例状态 -->
<status>UP</status>
<!--实例的覆盖状态 -->
<overriddenstatus>UNKNOWN</overriddenstatus>
<!--端口 -->
<port enabled="true">7003</port>
<securePort enabled="false">443</securePort>
<countryId>1</countryId>
<!--使用的数据中心 -->
<dataCenterInfo class="com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo">
<name>MyOwn</name>
</dataCenterInfo>
<!--租约信息 -->
<leaseInfo>
<!--心跳间隔 -->
<renewalIntervalInSecs>30</renewalIntervalInSecs>
<!--实例过期时间 -->
<durationInSecs>90</durationInSecs>
<!--注册时间 -->
<registrationTimestamp>1528277046826</registrationTimestamp>
<!--最后一次续约时间 -->
<lastRenewalTimestamp>1528277985101</lastRenewalTimestamp>
<!--实例最后一次下线时间 -->
<evictionTimestamp>0</evictionTimestamp>
<!--服务启动时间 -->
<serviceUpTimestamp>1528276042944</serviceUpTimestamp>
</leaseInfo>
<metadata>
<management.port>17003</management.port>
</metadata>
<!--主页 -->
<homePageUrl>http://10.208.204.119:7003/</homePageUrl>
<!--信息查询接口 -->
<statusPageUrl>http://10.208.204.119:17003/info</statusPageUrl>
<!--健康检查接口 -->
<healthCheckUrl>http://10.208.204.119:17003/health</healthCheckUrl>
<!--VIP -->
<vipAddress>eureka-c</vipAddress>
<secureVipAddress>eureka-c</secureVipAddress>
<isCoordinatingDiscoveryServer>false</isCoordinatingDiscoveryServer>
<!--最后更新时间 , 用于判断是否过期 -->
<lastUpdatedTimestamp>1528277046826</lastUpdatedTimestamp>
<!--最后修改时间,用于判断信息的新旧 -->
<lastDirtyTimestamp>1528277019770</lastDirtyTimestamp>
<!--最后修改时间 -->
<actionType>ADDED</actionType>
</instance>
获取任意一个实例
接口地址: /eureka//instances/instanceID
调用方式:GET
源码地址:com.netflix.eureka.resources.InstancesResource.getById()
返回状态:
HTTPCode: 200 为成功
接口说明:通过实例ID,获取任意一个实例,如果实例ID重复,默认取第一个
调用说明:
地址:http://server1:7010/eureka/instances/10.208.204.119:7001
返回结果
和获取单个实例的结构一致
设置覆盖状态
接口地址: /eureka/apps/appID/instanceID/status?value=OUT_OF_SERVICE
调用方式:PUT
源码地址:com.netflix.eureka.resources.InstanceResource.statusUpdate()
返回状态:
HTTPCode: 200 为成功
HTTPCode: 500 为失败
接口说明:给实例设置覆盖状态, 可以用来做强制实例下线
调用说明:
地址:http://server1:7010/eureka/apps/EUREKA-B/10.208.204.119:7001/status?value=OUT_OF_SERVICE
删除覆盖状态接口地址: /eureka/apps/appID/instanceID/status?value=UP
调用方式:DELETE
源码地址:com.netflix.eureka.resources.InstanceResource.deleteStatusUpdate()
返回状态:
HTTPCode: 200 为成功
HTTPCode: 500 为失败
接口说明:删除实例的覆盖状态 , 可以恢复因设置了覆盖状态的实例上线
调用说明:
地址:http://server1:7010/eureka/apps/EUREKA-B/10.208.204.119:7001/status?value=UP
更新实例的metadata信息
接口地址: /eureka/apps/appID/instanceID/metadata?key=value
调用方式:PUTE
源码地址:com.netflix.eureka.resources.InstanceResource.updateMetadata()
返回状态:
HTTPCode: 200 为成功
通过VIP获取实例信息
接口地址: /eureka/vips/vipAddress
调用方式:GET
源码地址:com.netflix.eureka.resources.VIPResource.statusUpdate()
返回状态:
HTTPCode: 200 为成功
接口说明:VIP默认为实例的应用名。
调用说明:
地址:http://server1:7010//eureka/vips/eureka-a
返回结果:
和批量获取实例信息的结构一致
通过SVIP获取实例信息
接口地址: /eureka/svips/svipAddress
调用方式:GET
源码地址:com.netflix.eureka.resources.SecureVIPResource.statusUpdate()
返回状态:
HTTPCode: 200 为成功
接口说明:SVIP默认为实例的应用名。
调用说明:
地址:http://server1:7010//eureka/svips/eureka-a
返回结果:
和批量获取实例信息的结构一致