mirror of
https://github.com/openimsdk/open-im-server.git
synced 2026-05-17 23:39:04 +08:00
feat: ver3 branch
Signed-off-by: kubbot & kubecub <3293172751ysy@gmail.com>
This commit is contained in:
@@ -38,7 +38,7 @@ type ZkClient struct {
|
||||
options []grpc.DialOption
|
||||
|
||||
resolvers map[string]*Resolver
|
||||
localConns map[string][]resolver.Address //msg gateway
|
||||
localConns map[string][]resolver.Address
|
||||
balancerName string
|
||||
|
||||
logger Logger
|
||||
@@ -114,9 +114,8 @@ func NewClient(zkServers []string, zkRoot string, options ...ZkOption) (*ZkClien
|
||||
return nil, err
|
||||
}
|
||||
resolver.Register(client)
|
||||
var wg sync.WaitGroup
|
||||
go client.refresh(&wg)
|
||||
go client.watch(&wg)
|
||||
go client.refresh()
|
||||
go client.watch()
|
||||
return client, nil
|
||||
}
|
||||
|
||||
@@ -138,7 +137,7 @@ func (s *ZkClient) ensureAndCreate(node string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *ZkClient) refresh(wg *sync.WaitGroup) {
|
||||
func (s *ZkClient) refresh() {
|
||||
for range s.ticker.C {
|
||||
s.logger.Printf("refresh local conns")
|
||||
s.lock.Lock()
|
||||
@@ -149,16 +148,20 @@ func (s *ZkClient) refresh(wg *sync.WaitGroup) {
|
||||
delete(s.localConns, rpcName)
|
||||
}
|
||||
s.lock.Unlock()
|
||||
s.logger.Printf("refresh local conns success")
|
||||
}
|
||||
}
|
||||
|
||||
func (s *ZkClient) flushResolverAndDeleteLocal(serviceName string) {
|
||||
s.logger.Printf("start flush %s", serviceName)
|
||||
s.flushResolver(serviceName)
|
||||
delete(s.localConns, serviceName)
|
||||
}
|
||||
|
||||
func (s *ZkClient) flushResolver(serviceName string) {
|
||||
s.logger.Printf("start flush")
|
||||
r, ok := s.resolvers[serviceName]
|
||||
if ok {
|
||||
r.ResolveNow(resolver.ResolveNowOptions{})
|
||||
s.resolvers[serviceName] = r
|
||||
r.ResolveNowZK(resolver.ResolveNowOptions{})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -197,8 +200,3 @@ func (s *ZkClient) AddOption(opts ...grpc.DialOption) {
|
||||
func (s *ZkClient) GetClientLocalConns() map[string][]resolver.Address {
|
||||
return s.localConns
|
||||
}
|
||||
|
||||
type FakeLock struct{}
|
||||
|
||||
func (s *FakeLock) Lock() {}
|
||||
func (s *FakeLock) Unlock() {}
|
||||
|
||||
Reference in New Issue
Block a user