pull/458/head
wangchuxiao 2 years ago
parent 7ec313d1b3
commit 12cffc9c26

@ -44,6 +44,10 @@ func (s *ZkClient) watch() {
func (s *ZkClient) GetConnsRemote(serviceName string) (conns []resolver.Address, err error) {
path := s.getPath(serviceName)
_, _, _, err = s.conn.ChildrenW(path)
if err != nil {
return nil, errors.Wrap(err, "children watch error")
}
childNodes, _, err := s.conn.Children(path)
if err != nil {
return nil, errors.Wrap(err, "get children error")
@ -57,13 +61,9 @@ func (s *ZkClient) GetConnsRemote(serviceName string) (conns []resolver.Address,
}
return nil, errors.Wrap(err, "get children error")
}
log.ZDebug(context.Background(), "get conns from remote", "conn", data)
log.ZDebug(context.Background(), "get conns from remote", "conn", string(data))
conns = append(conns, resolver.Address{Addr: string(data), ServerName: serviceName})
}
_, _, _, err = s.conn.ChildrenW(path)
if err != nil {
return nil, errors.Wrap(err, "children watch error")
}
if len(conns) == 0 {
return nil, fmt.Errorf("no conn for service %s, grpc server may not exist, local conn is %v, please check zookeeper server %v, path: %s", serviceName, s.localConns, s.zkServers, s.zkRoot)
}

@ -22,6 +22,7 @@ func (r *Resolver) ResolveNow(o resolver.ResolveNowOptions) {
newConns, err := r.getConnsRemote(strings.TrimLeft(r.target.URL.Path, "/"))
if err != nil {
log.ZError(context.Background(), "resolve now error", err, "target", r.target)
r.ResolveNow(o)
return
}
r.addrs = newConns

Loading…
Cancel
Save