1.1.2 • Published 7 years ago
zkconfig-client-node v1.1.2
ZKConfig Client Node
A node client for zookeeper config system. You can refer the server here
Features
- Read config from remote server.
- Multi types, such as json, properties, yaml.
- Config watcher,
- Low CPU, based on zookeeper, lower CPU.
- Failover, config replica via zookeeper system and read config from local file system in case of all servers went down.
- Easy config with admin web ui.
How to use?
It is easy to use this.
npm install zkconfig-client-nodeIn your node code:
var ZKConfig = require('zkconfig-client-node');
var client = new ZKConfig.Client('127.0.0.1:2181', {
path: '/zkconfig/config/dev',
monitor: true,
monitorPath: '/zkconfig/connection',
username: 'zkconfig',
password: 'zkconfig'
});
client.on('connected', function() {
// connected
console.info('connected');
});
client.on('data', function(config) {
// get a config object.
console.info('name: ' + config.get('name'));
});
client.connect();API
The ZKConfig client has three important object: Client, Parser, Config.
Client is the main object that communicate with the zookeeper server.
Parser is an object to convert string content to a Config instance.
Config is an object to store data that loaded from server by a Client object.
Client
- constructor(servers, options): the construct function.
servers: the zookeeper servers, seperated by
,.
options: the options for the client.
path: String, required. The path to store the config.- monitor: Boolean, optional. Whether to uploat the connection information.
- monitorPath: String, optional. The path to sotre the connection information, must be the same with
zkserver's connectionPath. ifmonitoris true, this parameter must be an existed path in zookeeper server. - username: String, optional. username for auth.
- password: String, opational, password for auth.
- scheme: String, optional, default "digest".
- parser: string or a parser instance, optional, default is
PropertiesParser. - More other options please refer to node-zookeeper-client
- connect(): connect to zookeeper server and emit a connected event when connect success.
- close(): release the connection.
- on(eventName, callback): register an event handler.
- off(eventName, callback): unreigster an event handler.
- event: the client instance will emit those events:
- connect: fire while connect successfully.
- data: the data loaded and parsed successfully.
- error: the data loaded fail, parsed fail or fail to create connection to the server.
Parser
A parser to parse an string content to a config instance.
- parse(String content, callback)
content, a string content from zookeeper server.callback, function(err: Error, config : Config), a config instance, if parse fail or content is full, config will return null. There are three parser:
JsonParser, parser for json content.PropertiesParser, parser for java properties file.YamlParser, parser for yaml content.register, register a parserkey, the name of parser, eg: json, propertiesfactory, the factory of a parser, return a Parser instance.
Config
A instance to store data with convinient method to get data.
get(path, defaultValue)getString(path, defaultValue)getInteger(path, defaultValue)getObject(path, defaultValue)getFloat(path, defaultValue)getList(path, defaultValue)forEach(path, callback), iterate particular path of value, then call the callback function. The callback function receive three parameter(value, key, config):one for value, one for key(index for array), the last one is the whole object that found. If nothing is found with the path, the callback will not be called.getContent(), get the string content.getValue(), get the object that store the data.
LICENSE
MIT