首页 » PHP » 正文

php+zookeeper的curd操作

上一篇讲了一些安装流程,这篇来看下常用函数

http://php.net/manual/zh/book.zookeeper.php

我们用的比较多的应该是

注意:以上代码均来自php官网,大家可以执行一遍就会发现不少warning报错,主要集中在节点不存在时候的创建、查询、删除,不能直接创建删除子节点等问题,稍后会有针对说明和解决方案。

其中需要注意:

1 其中exists和get都可以设置$watcher_cb,该参数将会传入一个对象方法或者一个可调用函数,exists 会对zk下node的create,change,delete事件监听,而get不会监听create事件

2 create 只能创建一次,第二次创建将会报错(有部分开发者利用该特性来实现分布式锁,下一篇将会提到分布式锁的多实现方案)

3 set 和delete只能删除子节点,zk扩展本身不支持循环删除,也是上面出现的问题之一,这个需要我们自己实现,这里提供一个set的实现也是来自扩展官方的例子

 

这里采用的是对象的方式对zk默认方法封装更方便使用,点击查看扩展官方完整实例

https://github.com/andreiz/php-zookeeper/blob/master/examples/Zookeeper_Example.php

4 对于之前php官网中出现对不存在节点的创建、查询、删除报错的问题,建议先对节点进行exists判断,根据判断结果进行操作,避免warning报错影响业务流程

 

本文共 2 个回复

  • 小明 2018/11/19 18:06

    大佬这个主要有什么用呢,是处理分布式服务器调度吗?看的不太明白

    • chenjie 博主 2018/11/22 13:40

      @ 小明 用于分布式协调,配置管理、选主、分布式锁都可以,看场景

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据