diff --git a/pkg/discoveryregistry/zookeeper/discover.go b/pkg/discoveryregistry/zookeeper/discover.go index 413b15e9f..4404be4cf 100644 --- a/pkg/discoveryregistry/zookeeper/discover.go +++ b/pkg/discoveryregistry/zookeeper/discover.go @@ -71,7 +71,6 @@ func (s *ZkClient) GetConnsRemote(serviceName string) (conns []resolver.Address, func (s *ZkClient) GetConns(ctx context.Context, serviceName string, opts ...grpc.DialOption) ([]*grpc.ClientConn, error) { s.lock.Lock() - defer s.lock.Unlock() opts = append(s.options, opts...) conns := s.localConns[serviceName] if len(conns) == 0 { @@ -82,6 +81,7 @@ func (s *ZkClient) GetConns(ctx context.Context, serviceName string, opts ...grp } s.localConns[serviceName] = conns } + s.lock.Unlock() var ret []*grpc.ClientConn for _, conn := range conns { c, err := grpc.DialContext(ctx, conn.Addr, append(s.options, opts...)...) @@ -94,9 +94,8 @@ func (s *ZkClient) GetConns(ctx context.Context, serviceName string, opts ...grp } func (s *ZkClient) GetConn(ctx context.Context, serviceName string, opts ...grpc.DialOption) (*grpc.ClientConn, error) { - // newOpts := append(s.options, grpc.WithDefaultServiceConfig(fmt.Sprintf(`{"LoadBalancingPolicy": "%s"}`, s.balancerName))) - // return grpc.DialContext(ctx, fmt.Sprintf("%s:///%s", s.scheme, serviceName), append(newOpts, opts...)...) - return grpc.DialContext(ctx, fmt.Sprintf("%s:///%s", s.scheme, serviceName), append(s.options, opts...)...) + newOpts := append(s.options, grpc.WithDefaultServiceConfig(fmt.Sprintf(`{"LoadBalancingPolicy": "%s"}`, s.balancerName))) + return grpc.DialContext(ctx, fmt.Sprintf("%s:///%s", s.scheme, serviceName), append(newOpts, opts...)...) } func (s *ZkClient) GetFirstConn(ctx context.Context, serviceName string, opts ...grpc.DialOption) (*grpc.ClientConn, error) { diff --git a/pkg/discoveryregistry/zookeeper/resolver.go b/pkg/discoveryregistry/zookeeper/resolver.go index 7296a590c..0a7a7e191 100644 --- a/pkg/discoveryregistry/zookeeper/resolver.go +++ b/pkg/discoveryregistry/zookeeper/resolver.go @@ -3,7 +3,6 @@ package openKeeper import ( "context" "strings" - "sync" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/log" "google.golang.org/grpc/resolver" @@ -13,7 +12,6 @@ type Resolver struct { target resolver.Target cc resolver.ClientConn addrs []resolver.Address - lock sync.RWMutex getConnsRemote func(serviceName string) (conns []resolver.Address, err error) } @@ -25,9 +23,7 @@ func (r *Resolver) ResolveNow(o resolver.ResolveNowOptions) { log.ZError(context.Background(), "resolve now error", err, "target", r.target) return } - r.lock.Lock() r.addrs = newConns - r.lock.Unlock() r.cc.UpdateState(resolver.State{Addresses: r.addrs}) } diff --git a/pkg/discoveryregistry/zookeeper/zk.go b/pkg/discoveryregistry/zookeeper/zk.go index de110410f..302a9a788 100644 --- a/pkg/discoveryregistry/zookeeper/zk.go +++ b/pkg/discoveryregistry/zookeeper/zk.go @@ -103,8 +103,8 @@ func NewClient(zkServers []string, zkRoot string, options ...ZkOption) (*ZkClien resolver.Register(client) var wg sync.WaitGroup wg.Add(2) - go client.refresh(&wg) - go client.watch(&wg) + // go client.refresh(&wg) + // go client.watch(&wg) wg.Wait() return client, nil }