无法从尤里卡

时间:2018-01-18 08:15:59

标签: node.js netflix-eureka service-discovery

我创建了一个nodejs应用程序,它使用eureka服务注册自己。 当我转到localhost:8761时,我可以看到已注册的实例。 但是当我向localhost:8761/refdata发送请求时,我无法从注册的nodejs应用程序中获取详细信息。 但是当我向localhost:3000/refdata提出请求时,我得到了响应。 我正在使用eureka-js-client在eureka服务器上注册。

const Eureka = require('eureka-js-client').Eureka

const client = new Eureka({
    instance:{
        app: 'refdataservice',
    hostName: 'localhost',
    ipAddr: '127.0.0.1',
    port: {
        '$': 3000,
        '@enabled': 'true',
      },
    vipAddress: 'metallica.refdata.service.com',
    statusPageUrl: 'http://localhost:3000/info',
    dataCenterInfo: {
        '@class': 'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo',
          name: 'MyOwn',
    }
    },
    eureka: {
        host: '127.0.0.1',
        port: 8761,
        servicePath: '/eureka/apps/'
    }
})

我使用错误的网址发送请求吗? 我也试过localhost:8761/refdataservice/refdata

请建议。

谢谢,

阿玛尔

1 个答案:

答案 0 :(得分:0)

Eureka只是一个用于发现服务的注册表,并且不是代理用于您的请求。因此,您编写的任何URL都不起作用。

您需要的是支持Eureka的http客户端或网关。

如果您将Spring Cloud Zuul设置为网关,它将根据Eureka中存在的信息转发您的请求。

如果你使用任何支持Eureka的Http客户端,如Spring Cloud Feign,LoadBalanced RestTemplate,它将发送http请求,只是服务名称没有指定主机名和端口,

或者您可以自己实施。从Eureka服务器获取服务器列表,然后选择并使用其中一个。