zookeeper-cluster-client-fix
v1.0.0
Published
Sharing one zookeeper connection among Multi-Process on Node.js
Downloads
2
Readme
zookeeper-cluster-client
Support cluster-client process model on node-zookeeper-client.
Install
npm i zookeeper-cluster-client --save
Usage
1. Create a node using given path:
const zookeeper = require('zookeeper-cluster-client');
const client = zookeeper.createClient('localhost:2181');
const path = process.argv[2];
client.once('connected', async function() {
await client.create(path);
console.log('Node: %s is successfully created.', path);
await client.close();
});
client.connect();
2. List and watch the children of given node:
const zookeeper = require('zookeeper-cluster-client');
const client = zookeeper.createClient('localhost:2181');
const path = process.argv[2];
async function listChildren(client, path) {
const children = await client.getChildren(
path,
event => {
console.log('Got watcher event: %s', event);
listChildren(client, path);
});
console.log('Children of %s are: %j.', path, children);
}
client.once('connected', () => {
console.log('Connected to ZooKeeper.');
listChildren(client, path);
});
client.connect();
Support APIs
- [x]
createClient(connectionString, [options])
- [x]
connect()
- [x]
close()
: return promise - [x]
async create(path, [data], [acls], [mode])
- [x]
async remove(path, [version])
- [x]
async setData(path, data, [version])
- [x]
async getACL(path, [options])
- [x]
async setACL(path, acls, [version])
- [x]
async mkdirp(path, [data], [acls], [mode])
- [x]
async exists(path, [watcher])
- [x]
async getChildren(path, [watcher], [options])
- [x]
async getData(path, [watcher], [options])
- [ ]
addAuthInfo(scheme, auth)
- [x]
State getState()
- [x]
Buffer getSessionId()
- [x]
Buffer getSessionPassword()
- [x]
Number getSessionTimeout()
- [ ]
transaction()
Extends APIs
Provides some useful APIs beyond node-zookeeper-client.
[x]
watch(path, listener)
client.watch('/foo', (err, data, stat) => { if (err) { // handle error return; } console.log('data => %s', data.toString()); console.log('stat => %s', stat); });
[x]
watchChildren(path, listener)
client.watchChildren('/foo', (err, children, stat) => { if (err) { // handle error return; } console.log('children => %j', children); console.log('stat => %s', stat); });