python kazoo 监视zookeeper节点数据发生变化
转载:https://blog.csdn.net/kwsy2008/article/details/52042303
程序可以监视一个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,改变该节点所存储的值,这时程序会得到通知,打印出改变后的信息,注意,在第一次注册的时候,该函数也会被触发。