golang zookeeper监听事件报错
golang 监听zk的目录:
go func() {
for {
event := <-watch
//do something
}
}()
打印event: 报错:{Type:Unknown State:StateDisconnected Path: Err:
解决办法:
需要对channel读取做ok判断,即需要判断管道是否关闭。zookeeper的监听是一次性监听,所以每次需要重新添加监听,即需要将监听的事件进行循环监听。
for{
select{
case event,ok: =<-ch: if !ok{
QUITTHELOOPORRE-SUBSCRIBE
}else{
NORMALEVENT
}
}
}