Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
73 lines (50 sloc) 1.77 KB
zookeeper
An interface to the Zookeeper distributed configuration server.
== License
Copyright 2008 Phillip Pearson, and 2010 Twitter, Inc. Licensed under the
MIT License. See the included LICENSE file. Portions copyright 2008-2010
the Apache Software Foundation, licensed under the Apache 2 license, and
used with permission.
== Install
sudo gem install zookeeper
== Usage
Connect to a server:
require 'rubygems'
require 'zookeeper'
z = Zookeeper.new("localhost:2181")
Create, set and read nodes:
z.create("/bacon", "text to be stored in the new node", 0)
data, stat = z.get("/bacon")
# => ["text to be stored in the new node"...]
z.set("/bacon", "an entirely different line of text", stat.version)
z.set("/bacon", "this won't work", stat.version)
# CZookeeper::BadVersionError: expected version does not match actual version
data, stat = z.get("/bacon")
# => ["an entirely different line of text"...]
z.delete("/bacon", stat.version)
Create ephemeral and sequence nodes:
z.create("/parent", "parent node", 0)
z.create("/parent/test-",
"an ordered ephemeral node",
Zookeeper::EPHEMERAL | Zookeeper::SEQUENCE)
# => "/parent/test-0"
z.create("/parent/test-",
"an ordered ephemeral node",
Zookeeper::EPHEMERAL | Zookeeper::SEQUENCE)
# => "/parent/test-1"
z.get_children(:path => "/")
== Idioms
The following methods are initially supported:
get
set
get_children
stat
create
delete
get_acl
set_acl
All support async callbacks. get, get_children and stat support both
watchers and callbacks.
Calls take a dictionary of parameters. With the exception of set_acl, the
only required parameter is :path. Each call returns a dictionary with at
minimum two keys :req_id and :rc.