diff --git a/discovery/seata-discovery-zk/src/main/java/io/seata/discovery/registry/zk/ZookeeperRegisterServiceImpl.java b/discovery/seata-discovery-zk/src/main/java/io/seata/discovery/registry/zk/ZookeeperRegisterServiceImpl.java index aca964e57d3768e6b0165fcfea19f2279ff3837a..d858c142e1b5ea376e7615f59ce249ee0076d6cf 100644 --- a/discovery/seata-discovery-zk/src/main/java/io/seata/discovery/registry/zk/ZookeeperRegisterServiceImpl.java +++ b/discovery/seata-discovery-zk/src/main/java/io/seata/discovery/registry/zk/ZookeeperRegisterServiceImpl.java @@ -260,6 +260,7 @@ public class ZookeeperRegisterServiceImpl implements RegistryService<IZkChildLis // recover client if (!LISTENER_SERVICE_MAP.isEmpty()) { Map<String, List<IZkChildListener>> listenerMap = new HashMap<>(LISTENER_SERVICE_MAP); + LISTENER_SERVICE_MAP.clear(); for (Map.Entry<String, List<IZkChildListener>> listenerEntry : listenerMap.entrySet()) { List<IZkChildListener> iZkChildListeners = listenerEntry.getValue(); if (CollectionUtils.isEmpty(iZkChildListeners)) {