我正在使用eureka-js-client进行发现。
使用提供的方法进行发现时,我得到以下输出。
我们应该如何解析它以发现调用程序可以使用的URL。我们应该使用JSON输出中的hostName字段并使用它。缺乏关于如何使用的信息。感谢任何帮助。
代码:
client.start((error) => {
console.log(error || 'complete');
if(!error){
//Get Instances By App ID
// appInfo.application.instance contains array of instances
var appInfo = client.getInstancesByAppId('security-api');
console.log('appInfo:' + appInfo);
console.log('appInfo:' + JSON.stringify(appInfo));
console.log('appInfo instances:' + JSON.stringify(appInfo.application));
//Get Instances By Vip Address
// appInfo.application.instance contains array of instances
// var appInfo2 = client.getInstancesByVipAddress('security-api-client');
// console.log('appInfo2:' + appInfo2);
}
});
输出示例:
[
{
"hostName":"security-api.mybluemix.net",
"app":"SECURITY-API",
"ipAddr":"127.0.0.1",
"status":"UP",
"overriddenstatus":"UNKNOWN",
"port":{
"$":62114,
"@enabled":"true"
},
"securePort":{
"$":7002,
"@enabled":"false"
},
"countryId":1,
"dataCenterInfo":{
"@class":"com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo",
"name":"MyOwn"
},
"leaseInfo":{
"renewalIntervalInSecs":30,
"durationInSecs":90,
"registrationTimestamp":1479240207261,
"lastRenewalTimestamp":1479240357280,
"evictionTimestamp":0,
"serviceUpTimestamp":1479168100962
},
"metadata":{
"@class":"java.util.Collections$EmptyMap"
},
"statusPageUrl":"http://security-api.mybluemix.net/info",
"vipAddress":"security-api-client",
"isCoordinatingDiscoveryServer":"false",
"lastUpdatedTimestamp":"1479240207261",
"lastDirtyTimestamp":"1479240207201",
"actionType":"ADDED"
}
]
答案 0 :(得分:0)
这取决于您的具体要求,但最常见的是您需要使用hostName
和port
(或securePort
)并在应用程序代码中构建网址。< / p>
答案 1 :(得分:0)
问题可能与我在这里Spring Cloud Netflix Eureka doesn't find eureka-js instances
遇到的问题相同新的Eureka对象中缺少instanceId
字段。
在eureka-js-client文档中未提及