python 操作 zookeeper 快速入门

文章目录

  • python 操作 zookeeper 快速入门
    • 什么是zookeeper
    • python 操作 zk 快速入门
      • zk节点
      • 创建节点
      • 查询节点
      • 修改节点
      • 删除节点

什么是zookeeper

什么是zookeeper : 这篇zookeeper讲的还满清楚的

python 操作 zk 快速入门

今年开始接触第五门开发语言了, 以前总听说python 性能低,真正接触到一个python项目后才发现它强大之处,刷新了对python的认知,短短几十个文件居然就实现一个很强大的服务应用,废话不多说,写demo。

docker快速启动一个zk

C:\Users\sola>docker search zookeeper
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
zookeeper                          Apache ZooKeeper is an open-source server wh…   822                 [OK]
jplock/zookeeper                   Builds a docker image for Zookeeper version …   164                                     [OK]
docker pull zookeeper
docker run -p 2181:2181 zookeeper:latest

这样我们的测试服务就快速起来了。

接着使用python的zookeeper接口的kazoo来做一次增删改查。

zk节点

在Zookeeper中,“节点"分为两类:

第一类同样是指构成集群的机器,为机器节点;
第二类则是指数据模型中的数据单元,数据节点一一ZNode。

Zookeeper维护一个类似文件系统的数据结构,和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。

Zookeeper将所有数据存储在内存中,数据模型是一棵树(Znode Tree),由斜杠(/)的进行分割的路径,就是一个Znode,例如/foo/path1。每个上都会保存自己的数据内容,同时还会保存一系列属性信息。

在Zookeeper中,node可以分为持久节点和临时节点两类:

创建节点

from kazoo.client import KazooClient
zk = KazooClient(hosts='10.0.75.2:2181')
zk.start()    #与zookeeper连接
zk.create('/demo/Znode/0001', b'a demo node', makepath=True)
#node = zk.get_children('/')  # 查看根节点有多少个子节点
#print(node)
zk.stop()    #与zookeeper断开

查询节点

from kazoo.client import KazooClient
zk = KazooClient(hosts='10.0.75.2:2181')
zk.start()    #与zookeeper连接
#zk.create('/demo/Znode/0001', b'a demo node',makepath=True)
node = zk.get_children('/')  # 查看根节点有多少个子节点
print(node)
print(zk.get(/demo/Znode/0001))
zk.stop()    #与zookeeper断开

修改节点

from kazoo.client import KazooClient
zk = KazooClient(hosts='10.0.75.2:2181')
zk.start()    #与zookeeper连接
#zk.create('/demo/Znode/0001', b'a demo node',makepath=True)
zk.set('/demo/Znode/0001', b"alter demo node!")
node = zk.get('/demo/Znode/0001')  # 查看根节点有多少个子节点
print(node)
zk.stop()    #与zookeeper断开

删除节点

from kazoo.client import KazooClient
zk = KazooClient(hosts='10.0.75.2:2181')
zk.start()    #与zookeeper连接
#zk.create('/demo/Znode/0001', b'a demo node', makepath=True)
zk.delete('/demo', recursive=True)
node = zk.get_children('/')  # 查看根节点有多少个子节点
print(node)
zk.stop()    #与zookeeper断开

python 操作zk的一个入门文章,当然zk能实现的功能远不止这么简单,还有Watcher、Session、ACL等重要概念、
zookeeper能实现集群管理,分布式锁,分布式队列,zookeeper集群leader选举等等。

python 操作 zookeeper 快速入门相关推荐

  1. 【Python零基础快速入门系列 | 03】AI数据容器底层核心之Python列表

    • 这是机器未来的第7篇文章 原文首发地址:https://blog.csdn.net/RobotFutures/article/details/124957520 <Python零基础快速入门 ...

  2. 【Python零基础快速入门系列 | 07】浪漫的数据容器:成双成对之字典

    这是机器未来的第11篇文章 原文首发链接:https://blog.csdn.net/RobotFutures/article/details/125038890 <Python零基础快速入门系 ...

  3. 【Python数据科学快速入门系列 | 04】Numpy四则运算、矩阵运算和广播机制的爱恨情仇

    这是机器未来的第43篇文章 原文首发地址:https://blog.csdn.net/RobotFutures/article/details/126493989 文章目录 1. 概述 2. 四则运算 ...

  4. python新手教程 从零开始-Python零基础从零开始学习Python十分钟快速入门

    原标题:Python零基础从零开始学习Python十分钟快速入门 学习Python的,都知道Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.Python是一种动态解释型的 ...

  5. zookeeper教程,docker 安装,命令,python操作zookeeper,分布式队列,分布式锁

    docker安装zookeeper服务端 首先安装单节点的服务端,如果安装多节点的服务端,需要为每个节点配置其他节点的地址. docker run --privileged=true -d --nam ...

  6. Python 股票分析快速入门

    Python 股票分析快速入门 这段时间股市又开始火爆起来了,隐约这透着点大牛市气息,多年不用的股票账户也找回来了.然后就想着用python做下股票分析,尝试制作自己的分析脚本,本篇教程是自己的一些笔 ...

  7. Python七天快速入门——第一天

    Python七天快速入门--第二天 Python七天快速入门--第三天 Python七天快速入门--第四天 上 Python七天快速入门--第四天 下 Python七天快速入门--第五天 Python ...

  8. zookeeper快速入门——应用(两种分布式锁)

    在<zookeeper快速入门--简介>一文中,我们介绍了zookeeper的机制.但是还是比较抽象,没有直观感受到它在分布式系统中的应用.本文我们使用一个例子,三次迭代演进,来说明Zoo ...

  9. 屏通触摸屏软件操作手册_屏通人机界面软件操作手册快速入门版.pdf

    屏通人机界面软件操作手册快速入门版 PM Designer 触控大师 屏 通 人 机 界 面 软件操作手册 快速入门版 0 目 录 第一章 PM Designer触控大师软件简介3 1.1 软件功能介 ...

最新文章

  1. mybatis mysql Druid_mybatis+Druid连接池的问题
  2. ios开发之UIView的frame、bounds跟center属性的区别(附图)
  3. intelliJ idea运行新的test功能时,报错:class not found ..... empty test suite
  4. 【Bapi】客户主数据快捷修改
  5. JS以及CSS对页面的阻塞
  6. 有趣,机器人吵架视频!
  7. 位置环PID模糊C语言,PID和位置环
  8. 数字图像处理:各种变换滤波和噪声的类型和用途总结
  9. mysql数据库安装在unix_Linux下的数据库二:在Linux/Unix平台安装MySQL
  10. leetcode - 898. 子数组按位或操作(使用了集合)
  11. 开源项目面试重要吗_您的开源故事很重要
  12. CSS 参考资料/学习资料
  13. 【算法】CRC 循环冗余校验
  14. 亮剑:PHP,我的未来不是梦(1)
  15. python 实现 画图器_python实现画图工具
  16. SSL 模拟赛 总结(2017.10.25)
  17. python画马鞍面_在matlab中怎么画马鞍面?
  18. java 刽子手图像代码,刽子手游戏代码
  19. PT100铂热电阻三种测温方法介绍
  20. Windows 获取和修改Owner

热门文章

  1. QTP关于密码或名字录制不上解决方法
  2. 酷炫 | 比较6种类型和14种数据可视化工具
  3. imut 51单片机课设 模拟室内温度检测器 *秋昊
  4. 涡街流量计要怎么选型呢
  5. 【人脸识别】基于模板匹配实现人脸识别附matlab代码和GUI界面
  6. 关于对我Blog一些文章的说明
  7. Docker 中部署 Greenplum
  8. 自动生成正交表测试用例PICT
  9. vue.js入门 1.v-for中in与of的区别:
  10. 超详细的激光点云地面分割(可行驶区域提取)方案