Я использую eureka-js-client для обнаружения.
При использовании методов, предоставленных для обнаружения, я получаю следующий вывод.
Как мы должны разобрать это, чтобы обнаружить URL-адреса, которые могут использоваться вызывающей программой. Должны ли мы использовать поле hostName из вывода JSON и использовать его. Отсутствие информации о том, как использовать. Цените любую помощь.
Код:
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"
}
]