我正在使用 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"
}
]
最佳答案
这取决于您的具体要求,但最常见的是您需要使用 hostName
和 port
(或 securePort
)和在您的应用程序代码中构建 URL。
关于node.js - 使用 eureka-js-client Node 库发现实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40619371/