public class LeaderElectionExample {
private static final String ZOOKEEPER_CONNECTION_STRING = "localhost:2181";
private static final String LEADER_PATH = "/election/leader";
public static void main(String[] args) throws Exception {
CuratorFramework client = CuratorFrameworkFactory.newClient(ZOOKEEPER_CONNECTION_STRING, new ExponentialBackoffRetry(1000, 3));
client.start();
LeaderSelector selector = new LeaderSelector(client, LEADER_PATH, new LeaderSelectorListener() {
@Override
public void takeLeadership(CuratorFramework client) throws Exception {
}
@Override
public void stateChanged(CuratorFramework client, ConnectionState newState) {
if (newState == ConnectionState.LOST) {
}
}
});
selector.autoRequeue();
selector.start();
}
}
public class LockExample {
private static final String ZOOKEEPER_CONNECTION_STRING = "localhost:2181";
private static final String LOCK_PATH = "/locks/my-lock";
public static void main(String[] args) throws Exception {
CuratorFramework client = CuratorFrameworkFactory.newClient(ZOOKEEPER_CONNECTION_STRING, new ExponentialBackoffRetry(1000, 3));
client.start();
InterProcessMutex lock = new InterProcessMutex(client, LOCK_PATH);
if (lock.acquire(10, TimeUnit.SECONDS)) {
try {
} finally {
lock.release();
}
} else {
}
}
}