我创建了一个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
请建议。
谢谢,
阿玛尔
答案 0 :(得分:0)
Eureka只是一个用于发现服务的注册表,并且不是代理用于您的请求。因此,您编写的任何URL都不起作用。
您需要的是支持Eureka的http客户端或网关。
如果您将Spring Cloud Zuul设置为网关,它将根据Eureka中存在的信息转发您的请求。
如果你使用任何支持Eureka的Http客户端,如Spring Cloud Feign,LoadBalanced RestTemplate,它将发送http请求,只是服务名称没有指定主机名和端口,
或者您可以自己实施。从Eureka服务器获取服务器列表,然后选择并使用其中一个。