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

  • 相关阅读:
    DTS和AC3的区别
    bind出现 file does not end with newline错误
    删除桌面菜单多余项
    you have requested a nonexistent service "grid"
    php 常用函数
    Jquery
    Twig 的Filters学习
    Twig 的 tags学习(中文) 之三 完结
    PHP 正则表达式
    SQL处理字符串
  • 原文地址:https://www.cnblogs.com/DjangoBlog/p/3803537.html
Copyright © 2011-2022 走看看