Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zhike-team/zhike-consul
a new consul client used by zhike
https://github.com/zhike-team/zhike-consul
Last synced: 2 months ago
JSON representation
a new consul client used by zhike
- Host: GitHub
- URL: https://github.com/zhike-team/zhike-consul
- Owner: zhike-team
- Created: 2016-10-10T03:04:20.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-03-28T12:44:19.000Z (almost 7 years ago)
- Last Synced: 2024-09-16T12:45:15.195Z (4 months ago)
- Language: JavaScript
- Size: 17.6 KB
- Stars: 6
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# zhike-consul
a simple consul client
## Demo
```js
const Consul = require('zhike-consul');
const keys = ['orderPrivate', 'mq', 'userService'];
const host = '127.0.0.1';
const port = 8500;
const env = 'development';
const timeout = 3000;
const output = false;// 1.初始化consul
let consul = new Consul(keys, host, port, global, { timeout, output });// 2.加载相关配置
consul.pull(env).then(function(data) {
/**
data = {
CFG: {
orderPrivate: {port: 6002, timeout: 10},
mq: {user: 'test', pass: 'test'},
userService: {url: 'http://api.dev.smartstudy.com/user'}
},
config: {
port: 6002,
timeout: 10,
mq: {user: 'test', pass: 'test'},
userService: {url: 'http://api.dev.smartstudy.com/user'}
}
}
*/
/** 每个key的配置信息会默认挂载在global的CFG对象下
global.CFG = data.CFG
*//** global的config对象会以私有配置为准,把其余的key的配置信息平铺在一起
global.config = data.config;
*/// 3.启动HTTP Server
let express = require('express');
let app = express();
let mq = amqplib.connect('amqp://' + config.mq.user + ':' + config.mq.pass + '@' + config.mq.host + ':' + config.mq.port);
app.listen(config.port);
})
```
## API
### 1.consul(keys, host, port, global)
Initialize a new Consul client#### Options
+ keys(array), 想要获取的配置文件的key值, 如['db', 'redis']
+ host(string), default: 127.0.0.1
+ port(number), default: 8500
+ global, global.CFG可以获取到相关的配置
+ option.timeout, 超时时间,默认为3000,可以按需指定,最大不能超过30000,单位是毫秒
+ option.output, 配置本地缓存文件绝对路径,设置成 false 可以禁用强制写到本地的特性。#### Usage
```js
var Consul = require('zhike-consul');
var consul = new Consul(keys, host, port, global, { timeout: 3000, output: false });
```### 2.pull(env)
Get config values.#### Options
+ env(string), 指定拉取哪个环境的配置信息, 如development、test或production,默认development#### Usage
```js
consul.pull('development').then(function(data) {
console.log(data.CFG.redis.port); // 6379
console.log(data.config.redis.port); // 6379
// 或直接用global对象CFG和config
console.log(config.redis.port); // 6379
console.log(CFG.redis.port); // 6379
})
```### 3.register(data)
Register current service#### Options
+ data, 服务注册的数据#### Usage
```js
consul.register(data).then(function() {
console.log('success');
})
```### 4.getNodeIp()
Get ip address of consul service is running#### Usage
```js
consul.getNodeIp().then(function(data) {
console.log(data); // 172.16.3.2
})
```## Run Tests
```
npm test
```