zoukankan      html  css  js  c++  java
  • python中使用kazoo连接zookeeper(一)

    http://hi.baidu.com/eldersun/item/b9266e019da769f0f45ba6a4

    python下连接zookeeper使用最多的是python 包装的zookeeper 的c客户端,但是使用c客户端来访问zookeeper不是很方便,特别是如果你有代码洁癖,肯定不能容忍这种情况,那么有没有纯python的实现方式呢,答案是肯定的,kazoo就是比较好的实现方案,而且发展很迅速,目前已经比较成熟。

    相比其它的zookeeper 的客户端 API相比,包括java的客户端API,kazoo提供了许多更为高层的接口。

    zookeeper支持事件编程是非常常见的场景,常用的几个方法示例:

    场景一:

    #官方文档说如果使用锁对象(lock)的话,最好要监控zk client的连接状态,防止执行过程中锁的丢失。

    #侦听zk的连接状态,如果失去链接,需要进行处理,如锁可能已经丢失,需要放弃本地的leader角色
    from kazoo.client import KazooState
    def my_listener(state):
        if state == KazooState.LOST:
            # Register somewhere that the session was lost
        elif state == KazooState.SUSPENDED
            # Handle being disconnected from Zookeeper
        else:
            # Handle being connected/reconnected to Zookeeper

    zk.add_listener(my_listener)

    场景二:
    #获取变化,当成控制信号
    @zk.DataWatch("/my/favorite")
    def watch_node(data, stat):
        print("Version: %s, data: %s" % (stat.version, data.decode("utf-8")))

  • 相关阅读:
    itextpdf 和 pdfbox 测试用例
    Java base64 编码、解码
    常用字体
    DIY 单片机 入门
    太难了。
    Java 之 native:JNI 本地方法测试实现
    Java 之 String 引用传递
    Java class 文件 方法的指令含义
    Spring学习文章链接
    数据结构_树_图_总结
  • 原文地址:https://www.cnblogs.com/DjangoBlog/p/3803537.html
Copyright © 2011-2022 走看看