使用eureka-js-client节点库的发现实例

时间:2016-11-15 20:45:41

标签: node.js netflix-eureka

我正在使用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"
   }
]

2 个答案:

答案 0 :(得分:0)

这取决于您的具体要求,但最常见的是您需要使用hostNameport(或securePort)并在应用程序代码中构建网址。< / p>

答案 1 :(得分:0)

问题可能与我在这里Spring Cloud Netflix Eureka doesn't find eureka-js instances

遇到的问题相同

新的Eureka对象中缺少instanceId字段。

在eureka-js-client文档中未提及