zookeeper分布式锁(六)
来源:互联网 发布:回看 网络电视 编辑:程序博客网 时间:2024/05/17 03:22
非“幂等”操作:创建节点
zookeeper分布式锁(五)我们讲解了“幂等”和“非幂等”操作。
本节,我们将通过创建节点这个非“幂等”操作来创建对应方法。
我们通过在节点名称中添加UUID来标示唯一节点,这里我们用zookeeper的sessionid代替。
我们定义方法findPrefixInChildren()。
findPrefixInChildren()方法的访问权限是“private”,返回类型是“void”,参数有:
prefix,节点名称的前缀
zookeeper
dir,lock应用的根节点路径
代码如下:
<span style="white-space:pre"></span>//假如出现“网络丢失”的异常 //此时不能判断节点是否创建成功 //且节点的创建“非幂等” //因此需要遍历所有的节点根据名称去判断节点是否已经存在 //如果存在,返回 //如果不存在,创建 //根据代码实现可以发现: //判断节点是否存在是根据prefix参数进行判断的 //也就是说根据“"x-" + sessionId + "-"”进行是否存在的判断 private void findPrefixInChildren(String prefix, ZooKeeper zookeeper, String dir) throws KeeperException, InterruptedException { List<String> names = zookeeper.getChildren(dir, false); for (String name : names) { if (name.startsWith(prefix)) { id = name; if (LOG.isDebugEnabled()) { LOG.debug("Found id created last time: " + id); } break; } } if (id == null) { id = zookeeper.create(dir + "/" + prefix, data, getAcl(), EPHEMERAL_SEQUENTIAL); if (LOG.isDebugEnabled()) { LOG.debug("Created id: " + id); } } }
0 0
- zookeeper分布式锁(六)
- Zookeeper学习笔记(六)分布式Barrier
- zookeeper 分布式锁服务
- ZooKeeper示例 分布式锁
- zookeeper创建分布式锁
- zookeeper分布式锁DEMO
- zookeeper分布式锁
- zookeeper分布式锁(二)
- zookeeper分布式锁(三)
- zookeeper分布式锁(四)
- zookeeper分布式锁(五)
- zookeeper分布式锁(七)
- zookeeper分布式锁(八)
- zookeeper分布式锁(九)
- zookeeper分布式锁(十)
- zookeeper分布式锁(十一)
- zookeeper分布式锁(十二)
- Zookeeper 分布式锁
- jquery.fn.extend与jquery.extend
- Python 查找有序列表中指定元素所在位置
- 什么样的人适合微信创业
- Cognos测试数据源XQE-JDB-0004错误的解决方案
- R语言中的模型公式与图表
- zookeeper分布式锁(六)
- 常见的各种排序
- (Xilinx)FPGA中LVDS差分高速传输的实现
- 浅析arm汇编中^、!、cxsf符号和movs等指令使用学习-之1
- 冒泡排序
- Android - 线程同步
- Spring+Struts2, 将框架的配置文件整合起来
- 海量数据处理面试题-①笔记
- 2.纹理贴图