1.1 Apache ZooKeeper
public class CuratorExample {
private static final String ZOOKEEPER_CONNECTION_STRING = "localhost:2181";
private static final String LOCK_PATH = "/my-lock";
public static void main(String[] args) throws Exception {
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
CuratorFramework client = CuratorFrameworkFactory.newClient(ZOOKEEPER_CONNECTION_STRING, retryPolicy);
client.start();
InterProcessMutex lock = new InterProcessMutex(client, LOCK_PATH);
try {
lock.acquire();
// ...
} finally {
lock.release();
client.close();
}
}
}