zk

1.1.1 • Public • Published

Zk

Build Status david Dependencies david Dev Dependencies license

Zk is a promised based Zookeeper client library for Node. It uses the fork of C binding from node-zookeeper and makes it easier to use.

The following methods are implemented:

  • get
  • set
  • create
  • exists
  • delete
  • getChildren
  • getChildren2

Install

$ npm install zk

Connection

var Zookeeper = require('zk')
var zk = new Zookeeper()
 
zk.connect().then(function() {
    // zk.create(), zk.set()...
})

Basics

zk.create('/test-node-', 'value', Zookeeper.ZOO_SEQUENCE | Zookeeper.ZOO_EPHEMERAL).then(function(_path) {
    // _path is created node path
})
return zk.set(path, 'value2', -1).then(function(){
    zk.get(path).then(function(reply){
        // reply.stat is node stat object
        // reply.data is node value (Buffer) -> reply.data.toString() will be 'value2'
    })
})

Watches

Watches are implemented as promises conditionaly returned with results:

get without watch:

zk.get(path).then(function(reply) {
    // reply.stat is node stats
    // reply.data is node value (buffer)
})

get with watch:

return zk.get(path, true).then(function(reply) {
    // reply.stat, reply.data as above
    // reply.watch is a promise
    return reply.watch.then(function(event){
        // event.type: 'child' | 'changed' | 'deleted' ..
        // event.state
        // event.path
    })
})

See tests for more

Locks

var Zookeeper = require('zk')
var Lock = Zookeeper.Lock
var zk = new Zookeeper()
 
// zk.connect() ...
 
var lock = new Lock(zk, 'lockName')
 
var promise = lock.lock(function(){
    // we got the lock!
    // ... do something and return a promise
})

Function passed to lock() should return a promise. That promise will be the return value of lock() call

Readme

Keywords

Package Sidebar

Install

npm i zk

Weekly Downloads

11

Version

1.1.1

License

MIT

Unpacked Size

90.7 kB

Total Files

21

Last publish

Collaborators

  • oleksiyk