【发布时间】:2017-12-29 09:08:41
【问题描述】:
我想要实现的是:
-
在 heroku 的我的 eureka-server 中注册 node.js 服务。
到目前为止,我可以在 heroku 的 eureka-server 中注册一个常规的 eureka-client,没有问题。但是当我尝试使用 node.js 服务时,我对配置感到非常困惑......
我认为 eureka-js-client 是解决方案,目前没有成功...
代码如下。
const express = require('express'); const path = require('path'); const port = process.env.PORT || 3090; const app = express(); app.use(express.static(__dirname)); const bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({extended: false})); app.use(bodyParser.json()); app.get('*', (req, res) => { res.sendFile(path.resolve(__dirname, 'index.html')) }); const Eureka = require('eureka-js-client').Eureka; const eureka = new Eureka({ instance: { app: 'sheila', hostName: 'localhost', ipAddr: '127.0.0.1', statusPageUrl: 'http://localhost:5000', healthCheckUrl: 'http://localhost:5000/health', port: { '$': 5000, '@enabled': 'true', }, vipAddress: 'myvip', dataCenterInfo: { '@Class': 'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo', name: 'MyOwn', }, }, eureka: { host: 'localhost', port: 8761, servicePath: '/eureka/apps/', }, }); eureka.logger.level('debug'); eureka.start(function(error){ console.log(error || 'complete'); }); // ------------------ Server Config -------------------------------------------- var server = app.listen(5000, function () { var port = server.address().port; console.log('Listening at %s', port); });
首先我在我的 docker 控制台上运行 docker run -it -p 8761:8761 springcloud/eureka 后在本地尝试过。但我得到这个错误:
Problem making eureka request { [Error: connect ECONNREFUSED 127.0.0.1:8761]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 8761 }
如果我从 heroku 服务运行它,它不会执行 :( :(
我还尝试将主机替换为我的 heroku eureka 服务器的 url,但随后出现 401 或 404 错误。尤里卡服务器需要我在 Heroku 客户端 js 中添加的密码。
有什么想法吗?
【问题讨论】:
标签: node.js heroku spring-cloud netflix-eureka