【问题标题】:heroku eureka-js-client node- Spring Cloud Netflix Support -heroku eureka-js-client 节点- Spring Cloud Netflix 支持 -
【发布时间】: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


    【解决方案1】:

    您需要包含一个 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/',
      },
    });
    

    【讨论】:

      猜你喜欢
      • 2017-07-21
      • 2020-04-15
      • 2021-08-22
      • 2022-12-05
      • 1970-01-01
      • 2018-12-11
      • 2017-07-07
      • 2017-02-27
      • 2018-01-01
      相关资源
      最近更新 更多