程序可以监视一个zookeeper节点的数据,一旦数据发生变化,监视器会获得相应的消息,利用这种方法,可以对全局的配置进行管理,程序在启动时读取该配置,注册监视器,当数据发生变化时可以获得通知。

      下面的这段代码模拟了该过程

#coding=utf-8
from kazoo.client import KazooClient
import time
zk = KazooClient(hosts='127.0.0.1:2181')
zk.start()

@zk.DataWatch('/kwsy/ss')
def my_func(data, stat, event):
    print("Data is %s" % data)
    print("Version is %s" % stat.version)
    print("Event is %s" % event)

while True:
    time.sleep(10)
    print 'ok'

        通过cli,改变该节点所存储的值,这时程序会得到通知,打印出改变后的信息,注意,在第一次注册的时候,该函数也会被触发。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐