kazoo 是一个更优雅的 Zookeeper 库,用法更简单,也不容易出错。
安装
开始使用 kazoo 之前,你需要先装好它。推荐从 PYPI 安装:
|
|
连接处理
建立连接
开始操作 Zookeeper 之前,需要先创建 KazooClient 对象并与 Zookeeper 建立连接:
|
|
客户端默认通过本地端口( 2181 )连接 Zookeeper 服务器,需要先确保 Zookeeper 已在本地运行,否则 start 方法将一直等待直到超时。
一旦成功连接,客户端会尝试保持连接状态,自动处理 间歇性连接中断 以及 会话过期 等问题。如果需要放弃当前连接,需要调用 stop 方法:
|
|
鉴权
如果 Zookeeper 设置了用户密码,则需要额外指定:
|
|
监听连接事件
掌握连接状态非常重要,用户需要知晓 连接中断 、 重连 以及 会话过期 等事件。为了简化处理逻辑, kazoo 将其抽象成一个状态系统。用户可以在上面注册监听函数,监听函数在连接状态发生变化时得到调用。
|
|
在使用 kazoo.recipe.lock.Lock 或者创建临时节点等场景, 强烈建议添加状态监听函数,以便程序在连接中断或者会话丢失时可以正确应对。
理解连接状态
日志设置
如果应用代码未设置 logging ,则可能出现以下错误信息:
|
|
为了避免这个问题,你可以添加以下两行代码:
|
|
增删改查
读取数据
相关方法:
- exists() ,检查路径节点是否存在;
- get() ,读取节点数据以及节点详情信息( ZnodeStat 对象);
- get_children() ,获取指定节点下所有子节点;
判断路径节点是否存在:
|
|
读取节点数据以及版本:
|
|
列举子节点:
|
|
【小菜学Python】系列文章首发于公众号【小菜学编程】,敬请关注: