Closed wzlove closed 2 months ago
I've solved it. better code is
zkConn, _, err := zk.Connect([]string{"127.0.0.1:2181"}, 5*time.Second)
if err != nil {
fmt.Println("connect zk err", err.Error())
}
node := "/test"
go func() {
loop:
for {
_, _, ch, err := zkConn.ChildrenW(node)
if err != nil {
fmt.Println(fmt.Errorf("%s zk watch have error,%s", node, err.Error()))
return
}
for evt := range ch {
switch evt.Type {
case
zk.EventNodeCreated,
zk.EventNodeDeleted,
zk.EventNodeChildrenChanged,
zk.EventNodeDataChanged:
goto loop
return
}
continue
}
}()
select {}
After my zk node data experiences several changes. I discovered a memory leak through the flame graph.
code case :