在往zk中写入数据的时候,突然遇到
“kazoo.exceptions.ConnectionLoss“错误,然而对zk链接进行检查,在set之前状态是”CONNECT“。
经过测试后发现是因为写入的字节长度过长导致的。
def SetTest(self):
self.zk.ensure_path("/a/c")
self.zk.ensure_path("/a/d")
self.zk.set("/a/c", json.dumps([i for i in range(144957)]))
self.zk.set("/a/d", json.dumps([i for i in range(144958)]))
如上函数中,第一个set操作可以成功,但是第二个set操作则会报错。
原因就是第二个set操作,写入的字节数过长导致。
如果无法将字节数缩短,应该进行zlib压缩再写入。
再读取的时候,先进行解压缩,再解析文本内容。