1.1.1 • Published 7 years ago

zk v1.1.1

Weekly downloads
4
License
MIT
Repository
github
Last release
7 years ago

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

1.1.1

7 years ago

1.1.0

7 years ago

1.0.3

10 years ago

1.0.2

10 years ago

1.0.0

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

11 years ago

0.0.4

11 years ago

0.0.1

11 years ago