Curator lock
Curator 提供的分布式锁用法,很简单:
package curator.lock; import org.apache.curator.RetryPolicy; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.framework.recipes.locks.InterProcessMutex; import org.apache.curator.retry.ExponentialBackoffRetry; public class InterProcessMutexDemo { public static void main(String[] args) { RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3); final CuratorFramework client = CuratorFrameworkFactory.builder().connectString("127.0.0.1:2181").sessionTimeoutMs(5000).connectionTimeoutMs(10000).retryPolicy(retryPolicy).namespace("text").build(); client.start(); InterProcessMutex lock = new InterProcessMutex(client,"/lock"); try { lock.acquire(); System.err.println("生成订单号"); Thread.currentThread().sleep(5000L); } catch (Exception e) { } finally { try { lock.release(); } catch (Exception e) { e.printStackTrace(); } } try { lock.acquire(); System.err.println("生成订单号"); Thread.currentThread().sleep(Long.MAX_VALUE); } catch (Exception e) { } finally { try { lock.release(); } catch (Exception e) { e.printStackTrace(); } } } }
相关推荐
duckes 2020-05-25
亦碎流年 2020-02-19
wangyangsoftware 2019-12-17
hyclq 2018-12-24
strburnchang 2016-01-09
Wisher 2019-07-01
XiaoqiangNan 2018-12-24
huangliuyu00 2019-06-29
田雄兵 2014-03-03
iamlihongwei 2014-03-03
bloodsuckerm 2018-09-29
yixu0 2018-08-17
zcanxue 2019-04-30
加号Jaryn笔录 2016-09-13