zookeeper分布式部署【二】

前面进行了zookeeper分布式部署,这边进行一个客户端连接操作,使用python连接

1.pycharm安装kazoo

2.下面上代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
from kazoo.client import KazooClient


def main():
    try:
        nodePath = "/zktest"
        host = "192.168.1.232"
        port = "2181"
        timeout = 100
        zkc = KazooClient(hosts=host + ':' + port, timeout=timeout)
        zkc.start()
        print("开启zookeeper:")
        # 判断节点是否存在
        if zkc.exists(nodePath + "/test111"):
            print(nodePath + "/test111", "存在")
        else:
            print("开始创建节点信息:")
            # 建立节点,成功后返回新节点路径
            childrenPath = zkc.create(nodePath + "/test111", b"test111")
            # 创建临时节点,连接断开则节点自动删除
            zkc.create(nodePath + "/test999", b"test999", ephemeral=True)
        # 获取节点数据和节点数据,返回2个值,一个是节点数据,一个是节点stat,这是个ZnodeStat对象,它其实是节点属性,一共有12个属性
        dataAndStat = zkc.get(nodePath)
        data = dataAndStat[0]
        print("数据为:", data)
        stat = dataAndStat[1]
        print("数据版本号为:", stat.version)
        print("数据长度为:", stat.data_length)
        print("子节点数量:", stat.numChildren)
        # 更新节点数据,数据最大为1MB超过则报错,成功后返回 ZnodeStat 对象
        stat = zkc.set(nodePath, value=b"test222")
        print("数据版本号为:", stat.version)
        # 删除节点,后面的参数用于控制是否递归删除,默认是False,但是这样就会有一个问题,如果该节点下有子节点则本次删除失败,你需要先删除
        # 它下面的所有子节点才行
        if zkc.exists(nodePath + "/test111"):
            result = zkc.delete(nodePath + "/test111", recursive=False)
            if result:
                print("删除节点成功。")
        print(nodePath + " 的子节点为:", zkc.get_children(nodePath))
        zkc.close()
        zkc.stop()
    except Exception as err:
        print(err.message)
        
if __name__ == "__main__":
    try:
        main()
    finally:
        sys.exit()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无痕Miss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值