diff --git a/pkg/discoveryregistry/zookeeper/resolver.go b/pkg/discoveryregistry/zookeeper/resolver.go index e395a8f34..b3b48ea8c 100644 --- a/pkg/discoveryregistry/zookeeper/resolver.go +++ b/pkg/discoveryregistry/zookeeper/resolver.go @@ -73,7 +73,11 @@ func (s *ZkClient) Build( opts resolver.BuildOptions, ) (resolver.Resolver, error) { s.logger.Printf("build resolver: %+v, cc: %+v", target, cc.UpdateState) - // log.ZDebug(context.Background(), "build resolver start", "target", target, "cc", cc.UpdateState) + serviceName := strings.TrimLeft(target.URL.Path, "/") + if oldResolver, ok := s.resolvers[serviceName]; ok { + s.logger.Printf("resolver exist: %+v, cc: %+v, key: %s", target, cc.UpdateState, serviceName) + return oldResolver, nil + } r := &Resolver{} r.target = target r.cc = cc @@ -81,11 +85,8 @@ func (s *ZkClient) Build( r.ResolveNowZK(resolver.ResolveNowOptions{}) s.lock.Lock() defer s.lock.Unlock() - serviceName := strings.TrimLeft(target.URL.Path, "/") s.resolvers[serviceName] = r s.logger.Printf("build resolver finished: %+v, cc: %+v, key: %s", target, cc.UpdateState, serviceName) - // log.ZDebug(context.Background(), "build resolver finished", "target", target, "cc", cc.UpdateState, - // "serviceName", serviceName) return r, nil }