node.js - 使用 eureka-js-client Node 库发现实例

标签 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"
   }
]

最佳答案

这取决于您的具体要求,但最常见的是您需要使用 hostNameport(或 securePort)和在您的应用程序代码中构建 URL。

关于node.js - 使用 eureka-js-client Node 库发现实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40619371/

相关文章:

node.js - 在express.js中app.params()和router.params()有什么不同?

javascript - 动态命名空间 Socket.IO

Spring Netflix Eureka 服务器以非法 URL 在 intelliJ 启动

javascript - 在 promise 回调中发送数组响应,但响应为空

node.js - 如何在nodejs中将变量名称作为mongo db的集合名称传递

spring-boot - 如何使用 Eureka 在 Docker swarm 中设置服务发现

spring-boot - 如何从不同的 IP 地址注册服务?

spring-cloud - Spring Cloud Netflix : What is the difference between ribbon. NIWSServerListClassName 和 ribbon.listOfServers?

netflix-eureka - DiscoveryClient 无法刷新其缓存!状态 404

node.js - 无法将 Google Assistant Action 添加到 Botium、Botium Box、botium-cli