Skip to content

Instantly share code, notes, and snippets.

@josejaguirre
Forked from zilehuda/eureka-helper.js
Created June 1, 2021 20:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save josejaguirre/cc5f77d4e3b250003217bd8d9247b629 to your computer and use it in GitHub Desktop.
Save josejaguirre/cc5f77d4e3b250003217bd8d9247b629 to your computer and use it in GitHub Desktop.
const Eureka = require('eureka-js-client').Eureka;
const eurekaHost = (process.env.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE || '127.0.0.1');
const eurekaPort = 8761;
const hostName = (process.env.HOSTNAME || 'localhost')
const ipAddr = '172.0.0.1';
exports.registerWithEureka = function(appName, PORT) {
const client = new Eureka({
instance: {
app: appName,
hostName: hostName,
ipAddr: ipAddr,
port: {
'$': PORT,
'@enabled': 'true',
},
vipAddress: appName,
dataCenterInfo: {
'@class': 'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo',
name: 'MyOwn',
},
},
//retry 10 time for 3 minute 20 seconds.
eureka: {
host: eurekaHost,
port: eurekaPort,
servicePath: '/eureka/apps/',
maxRetries: 10,
requestRetryDelay: 2000,
},
})
client.logger.level('debug')
client.start( error => {
console.log(error || "user service registered")
});
function exitHandler(options, exitCode) {
if (options.cleanup) {
}
if (exitCode || exitCode === 0) console.log(exitCode);
if (options.exit) {
client.stop();
}
}
client.on('deregistered', () => {
process.exit();
console.log('after deregistered');
})
client.on('started', () => {
console.log("eureka host " + eurekaHost);
})
process.on('SIGINT', exitHandler.bind(null, {exit:true}));
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment