kazoo
zk是用java开发的,因此sdk对java支持比较好,我们使用的是python语言,借助第三方库kazoo,网站 https://kazoo.readthedocs.io/en/latest/index.html 网站里面有比较详细地介绍kazoo的使用方法和注意事项,我们这里只列举常见的使用方法,具体深入的请前往网站仔细阅读。
安装
安装kazoo比较简单,yum可以使用
pip可以使用
安装成功之后,我们验证一下是否安装可用
CRUD例子
我们先写一个最简单的节点CRUD例子,kazoo这个库它内部会开工作线程执行相关连接和指令操作,不会阻塞主线程,还有在kazoo线程再去执行zk的指令操作会卡死整个程序,这个是需要注意的。
监听
除了CRUD常用操作以外,还有一个非常实用的功能就是监听节点(可以是节点的添加、删除、节点的数据更新)。kazoo提供了2种监听节点的方法,第一种是比较简单的,如下面官方提供的代码例子:
这种监听方法,当对应节点触发了,只会通知回调一次,如果需要继续监听需要再手动设置多次监听函数。下面介绍另外一种监听方法,只需要设定一次,每次有事件都会通知到回调函数而且通知类型数据比较丰富。下面列的是官方的例子代码片段,使用了python的装饰器。
一个完整的监听例子代码
测试
先运行测试程序,然后再开一个新的ssh中断使用zkCli.sh连接zk,执行以下测试指令
测试程序先后输出如下
文章来自公众号:睿江云计算