import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.recipes.locks.InterProcessMutex; import org.apache.curator.retry.ExponentialBackoffRetry; public class DistributedLockExample { private static final String ZOOKEEPER_CONNECTION_STRING = "localhost:2181"; private static final String LOCK_PATH = "/locks/distributed_lock"; private static final int MAX_RETRY = 3; private static final int RETRY_INTERVAL = 1000; public static void main(String[] args) throws Exception { CuratorFramework client = CuratorFrameworkFactory.newClient(ZOOKEEPER_CONNECTION_STRING, new ExponentialBackoffRetry(RETRY_INTERVAL, MAX_RETRY)); client.start(); InterProcessMutex lock = new InterProcessMutex(client, LOCK_PATH); if (lock.acquire(5, TimeUnit.SECONDS)) { try { Thread.sleep(5000); } finally { lock.release(); } } client.close(); } }


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