首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Eureka找不到eureka-js实例

Spring Eureka找不到eureka-js实例
EN

Stack Overflow用户
提问于 2018-06-21 09:54:02
回答 1查看 1.4K关注 0票数 1

我在春季有3个微服务:

  • Netflix Eureka
  • 制片人
  • 消费者

和另一个用NodeJs编写的用Eureka-js-client编写的微服务。

  • 节点-微业务

Spring Eureka仪表板列出了所有这些

到目前为止,一切看起来都还好,但问题是当我试图在eureka服务器中读取我的node-microservice实例时。通过这种方式成功地找到了employee实例。

代码语言:javascript
复制
List<ServiceInstance> instances=discoveryClient.getInstances("employee-producer");
    ServiceInstance serviceInstance=instances.get(0);

我找不到我的节点微服务

代码语言:javascript
复制
List<ServiceInstance> instances=discoveryClient.getInstances("node-microservice");
    ServiceInstance serviceInstance=instances.get(0);

通过调试,结果是

node-microservice

代码语言:javascript
复制
const Eureka = require('eureka-js-client').Eureka;
const express = require('express');
const server = express();
server.use(express.json());
server.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});
server.listen(3001);
server.get('/', function (req, res) {
    res.send("CIaooo");
});



// example configuration
const client = new Eureka({
    // application instance information
    instance: {
        app: 'node-microservice',
        hostName: 'localhost',
        ipAddr: '127.0.0.1',
        port:  {
            '$': 3001,
            '@enabled': 'true',
        },
        vipAddress: 'jq.test.something.com',
        statusPageUrl: 'http://localhost:3001/info',
        dataCenterInfo:  {
            '@class': 'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo',
            name: 'MyOwn',
        }
    },
    eureka: {
        // eureka server host / port
        host: 'localhost',
        port: 8761,
        servicePath: '/eureka/apps/'
    },
});

client.logger.level('debug');

client.start(function(error){
    console.log(error || 'complete')});

另一个奇怪的事情是,从spring调试开始,我就可以列出服务,其中还列出了节点-microservice。

我的密码怎么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-21 12:33:13

问题是,在实例对象中,我没有编写instanceId (在任何地方都没有提到)。我在代码爬行中找到了这个解决方案,而在另一个项目中也有这个字段。

代码语言:javascript
复制
instance: {
        app: 'node-microservice',
        instanceId: 'nodemicroservice',
        hostName: 'localhost',
        ipAddr: '127.0.0.1',
        port:  {
            '$': 3001,
            '@enabled': 'true',
        },
        vipAddress: 'nodemicroservice',
        statusPageUrl: 'http://localhost:3001/info',
        dataCenterInfo:  {
            '@class': 'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo',
            name: 'MyOwn',
        },
        registerWithEureka: true,
        fetchRegistry: true
    },
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50965591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档