blob: 3a62fa5e57b572eac6f17e3fdbfe759439feecbb [file] [log] [blame]
h1. Utilities
h2. Test Server
In the curator\-test sub\-model the {{TestingServer}} class is provided. This class creates a local, in\-process ZooKeeper server that can be used for testing.
h2. Test Cluster
In the curator\-test sub\-model the {{TestingCluster}} class is provided. This class creates an internally running ensemble of ZooKeeper servers.
h2. ZKPaths
Various static methods to help with using ZooKeeper ZNode paths:
* getNodeFromPath: Given a full path, return the node name. i.e. "/one/two/three" will return "three"
* mkdirs: Make sure all the nodes in the path are created.
* getSortedChildren: Return the children of the given path sorted by sequence number
* makePath: Given a parent path and a child node, create a combined full path
h2. Locker
Curator's Locker uses Java 7's try\-with\-resources feature to making using Curator locks safer:
{code}
InterProcessMutex mutex = new InterProcessMutex(...) // or any InterProcessLock
try ( Locker locker = new Locker(mutex, maxTimeout, unit) )
{
// do work
}
{code}
h2. BlockingQueueConsumer
See: *[[DistributedQueue|curator-recipes/distributed-queue.html]]* and *[[DistributedPriorityQueue|curator-recipes/distributed-priority-queue.html]]*
A queue consumer that provides behavior similar to a the JDK's BlockingQueue.
h2. QueueSharder
Due to limitations in ZooKeeper's transport layer, a single queue will break if it has more than 10K\-ish items in it. This class
provides a facade over multiple distributed queues. It monitors the queues and if any one of them goes over a threshold, a new
queue is added. Puts are distributed amongst the queues.
h2. WatcherRemoveCuratorFramework
Curator has a utility that makes it easy to set watchers and remove them at a later date. It is used for all Curator recipes.
From your CuratorFramework instance, call newWatcherRemoveCuratorFramework(). When using this proxy instance any watchers that are
set are recorded. You can then call removeWatchers() to remove those watchers. See the Curator source code for usage details.