eureka-config-client
Version:
69 lines (48 loc) • 2.38 kB
JavaScript
const EurekaClient =require('./eurekaClient');
const _ = require('lodash');
const inflection = require( 'inflection' );
class EurekaClientConfig {
constructor(appName,config,heartbeatInterval = 30000,registryFetchInterval = 30000) {
//console.log('EurekaClientConfig->constructor ' );
this.eurekaClient = new EurekaClient(appName,null,config.server.port,config.server.domain
,config.eurekaServer.host,config.eurekaServer.port,this.refreshConfig,this,[config],heartbeatInterval,registryFetchInterval);
};
async registerService()
{
return await this.eurekaClient.registerService();
};
refreshConfig(enurekaClient,config)
{
/** 2018/8/8 暂时屏蔽刷新CONFIG信息,因为目前没有用途。
lpy-modifyed */
return;
let eurekaApps = enurekaClient.getAllInstances();
console.log('refreshConfig data eurekaApps:' + JSON.stringify(eurekaApps,null,2));
_.keys(eurekaApps).map(appName=>{
let appInsts = eurekaApps[appName];
let keyName = inflection.camelize(appName.toLowerCase());
if(config[keyName] && appInsts.length > 0)
{
console.log(`refreshConfig keyName:${keyName},config host:${config[keyName].host},eureka host:${appInsts[0].vipAddress}`);
for(let i = 0;i < appInsts.length;i++)
{
if(!_.isEqual(config[keyName].host,appInsts[i].vipAddress))
{
console.log(`update ${keyName} from eureka server ,old Host:${config[keyName].host},new Host:${appInsts[i].vipAddress}`);
config[keyName].host = appInsts[i].vipAddress;
}
if(!_.isEqual(config[keyName].port,appInsts[i].port))
{
console.log(`update ${keyName} from eureka server ,old port:${config[keyName].port},new port:${appInsts[i].port}`);
config[keyName].port = appInsts[i].port;
}
}
}
});
//config.redis.db =1;
};
}
module.exports = EurekaClientConfig;
/*
console.log(inflection.underscore('MenuServer'));
console.log(inflection.camelize('menu_server'));*/