ztgoto opened this issue 6 years ago · 1 comments
watcher.go return []*naming.Update{{Op: naming.Delete, Addr: string(ev.Kv.Value)}}, nil 当服务从etcd下线,客户端watch检测到删除事件,但是其实删除事件中并未携带删除的值,只携带了键,所以ev.Kv.Value是一个空字符串。这时候在 google.golang.org/grpc/balancer.go 185L 会与本地的地址列表匹配不上,导致并未执行命名地址列表的删除操作
thx!
在删除时,应该使用PreKv来代替Kv