diff --git a/registry/zookeeper/listener.go b/registry/zookeeper/listener.go index 777c460f535b923b271162ff28840fbea19600e0..c25028d58f32f4028779fd6c050e60eef2bd7bd5 100644 --- a/registry/zookeeper/listener.go +++ b/registry/zookeeper/listener.go @@ -77,6 +77,7 @@ type RegistryConfigurationListener struct { } func NewRegistryConfigurationListener(client *zk.ZookeeperClient, reg *zkRegistry) *RegistryConfigurationListener { + reg.wg.Add(1) return &RegistryConfigurationListener{client: client, registry: reg, events: make(chan *config_center.ConfigChangeEvent, 32)} } func (l *RegistryConfigurationListener) Process(configType *config_center.ConfigChangeEvent) { diff --git a/registry/zookeeper/registry.go b/registry/zookeeper/registry.go index dc408a15f760a6e05cdb14c4f0b0ef33d66d71b0..13fb6c751f8010f1e716e37541aa8ac59256288c 100644 --- a/registry/zookeeper/registry.go +++ b/registry/zookeeper/registry.go @@ -432,7 +432,7 @@ func (r *zkRegistry) Subscribe(url *common.URL, notifyListener registry.NotifyLi time.Sleep(time.Duration(RegistryConnDelay) * time.Second) continue } - r.wg.Add(1) + for { if serviceEvent, err := listener.Next(); err != nil { listener.Close()