node.js - eureka-js-client 为什么我不能为两个服务实例使用相同的主机名?
问题描述
我正在为同一个服务部署两个实例,并且这两个实例在同一台机器上的不同端口上运行。因为它是一个 Nodejs 应用程序,所以我使用 eureka-js-client 进行注册。我的客户端配置 yml 文件如下:
eureka:
heartbeatInterval: 30000
registryFetchInterval: 30000
host: 'username:passwor@ipAdrress'
port: 8000
servicePath: '/eureka/apps/'
preferIpAddress: true
instance:
app: 'nodejs-service'
hostName: 'localhost'
ipAddr: 'localhost'
statusPageUrl: 'http://localhost:3000'
port:
'$': 3000
'@enabled': 'true'
vipAddress: 'nodejs-service'
dataCenterInfo:
'@class': 'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo'
name: 'MyOwn'
而对于另一个实例,我只是将端口更改为 4000。当我注册 3000 和 4000 时,它只在 eureka 页面上显示 4000 实例。也就是说,只注册了一个实例。当我将其中一个 hostName 值更改为其他值后,它工作正常 - 两个已注册。但是,我需要主机名相同,因为它们部署在同一台机器上。对于java,相同的主机名是好的,我想知道这个问题是我的yaml配置文件引起的。求帮助,谢谢!
解决方案
您需要在 yml 文件中添加 instance-id 属性,如下所示:
instance:
app: 'nodejs-service'
instanceId: 'node1'
推荐阅读
- octopus-deploy - 在 Octopus 步骤中下载包
- c# - C#调用本机方法而不为所需的结构参数分配内存
- python - 根据 Pandas Dataframe 中的时间戳列过滤给定的列(计数)
- flutter - 检查小部件字体、边距、填充和其他属性
- c# - 尝试...捕获 Items.GetByName(SeekedName) 与昂贵的每个 Items.Item 直到 CurrentItem.Name=SeekedName
- javascript - 根据值对二维数组进行排序
- python - 移动椭圆移动 QGraphicsScene 中的其他元素
- java - 读取外部应用程序属性中的 POM 值
- python - 有没有办法将 tkinter 输入框植入我的海龟屏幕(创建绘画)
- mongodb - 我正在尝试为 Rest API 自定义错误格式结构