问题描述
我正在为同一服务部署两个实例,并且两个实例在同一计算机上的不同端口上运行。由于它是一个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,相同的hostName可以,我想知道这是由我的yaml配置文件引起的问题。寻求帮助,谢谢!
解决方法
您需要像这样在yml文件中添加instance-id属性:
instance:
app: 'nodejs-service'
instanceId: 'node1'