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")))

  • 相关阅读:
    信息安全
    软件体系结构原理、方法与实践总结
    软件项目管理四个核心价值观
    博客园主题修改
    测试
    Java实现人民币大写精讲
    Windows系统性能提升方法
    Oracle系列之游标
    Oracle系列之异常处理
    Oracle系列之权限
  • 原文地址:https://www.cnblogs.com/DjangoBlog/p/3803537.html
Copyright © 2011-2022 走看看