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 { } } }


上一篇:
下一篇:
切换中文