feat: ver3 branch

Signed-off-by: kubbot & kubecub <3293172751ysy@gmail.com>
This commit is contained in:
kubbot & kubecub
2023-06-30 23:04:28 +08:00
parent 74de8825f6
commit 64bb62d814
105 changed files with 1221 additions and 1845 deletions
+11 -13
View File
@@ -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() {}