Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js heroku eureka js客户端节点-Spring云Netflix支持-_Node.js_Heroku_Spring Cloud_Netflix Eureka - Fatal编程技术网

Node.js heroku eureka js客户端节点-Spring云Netflix支持-

Node.js heroku eureka js客户端节点-Spring云Netflix支持-,node.js,heroku,spring-cloud,netflix-eureka,Node.js,Heroku,Spring Cloud,Netflix Eureka,我想要实现的是: 在heroku的my eureka服务器中注册node.js服务 到目前为止,我可以在heroku的eureka服务器中注册一个常规的eureka客户端,没有问题。但是当我尝试使用node.js服务时,我对配置感到非常困惑 我以为eureka js客户端是解决方案,但迄今为止没有成功 代码如下 const express = require('express'); const path = require('path'); const port = process.env.P

我想要实现的是:

  • 在heroku的my eureka服务器中注册node.js服务

    到目前为止,我可以在heroku的eureka服务器中注册一个常规的eureka客户端,没有问题。但是当我尝试使用node.js服务时,我对配置感到非常困惑

    我以为eureka js客户端是解决方案,但迄今为止没有成功

    代码如下

    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错误。eureka服务器需要密码,我在heroku客户端js中添加了密码


有什么想法吗?

您需要包括一个instanceId,它应该是这个实例的唯一标识符

const eureka = new Eureka({
  instance: {
    instanceId:'sheila',
    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/',
  },
});

您需要包含一个instanceId,它应该是此实例的唯一标识符

const eureka = new Eureka({
  instance: {
    instanceId:'sheila',
    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/',
  },
});