wwcd / grpc-lb

Example for grpc-lb with etcd

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

服务下线,其实并未从客户端将命名解析删除

ztgoto opened this issue · comments

commented

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