You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/09/21 15:43:20 UTC
[dubbo] branch master updated: [master] add zookeeper node data
created event check (#8834)
This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new 039525a [master] add zookeeper node data created event check (#8834)
039525a is described below
commit 039525adfc0b76ef038db0e4ba574ce837eaa2f0
Author: zrlw <zr...@sina.com>
AuthorDate: Tue Sep 21 23:42:44 2021 +0800
[master] add zookeeper node data created event check (#8834)
* add zookeeper node data created event check
* add NodeCreated process
* add missed else condition
---
.../apache/dubbo/configcenter/support/zookeeper/CacheListener.java | 4 +++-
.../dubbo/registry/integration/AbstractConfiguratorListener.java | 4 +++-
.../dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java | 3 +++
.../dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java | 3 +++
4 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/dubbo-configcenter/dubbo-configcenter-zookeeper/src/main/java/org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java b/dubbo-configcenter/dubbo-configcenter-zookeeper/src/main/java/org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java
index 494b36a..cbfc0c8 100644
--- a/dubbo-configcenter/dubbo-configcenter-zookeeper/src/main/java/org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java
+++ b/dubbo-configcenter/dubbo-configcenter-zookeeper/src/main/java/org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java
@@ -98,7 +98,9 @@ public class CacheListener implements DataListener {
@Override
public void dataChanged(String path, Object value, EventType eventType) {
ConfigChangeType changeType;
- if (value == null) {
+ if (EventType.NodeCreated.equals(eventType)) {
+ changeType = ConfigChangeType.ADDED;
+ } else if (value == null) {
changeType = ConfigChangeType.DELETED;
} else {
changeType = ConfigChangeType.MODIFIED;
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/AbstractConfiguratorListener.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/AbstractConfiguratorListener.java
index c71cfe9..3f3b2c7 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/AbstractConfiguratorListener.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/AbstractConfiguratorListener.java
@@ -60,7 +60,9 @@ public abstract class AbstractConfiguratorListener implements ConfigurationListe
", raw config content is:\n " + event.getContent());
}
- if (event.getChangeType().equals(ConfigChangeType.DELETED)) {
+ if (event.getChangeType().equals(ConfigChangeType.ADDED)) {
+ return;
+ } else if (event.getChangeType().equals(ConfigChangeType.DELETED)) {
configurators.clear();
} else {
if (!genConfiguratorsFromRawRule(event.getContent())) {
diff --git a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java
index abcb4ec..061809c 100644
--- a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java
+++ b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java
@@ -283,6 +283,9 @@ public class Curator5ZookeeperClient extends AbstractZookeeperClient<Curator5Zoo
EventType eventType;
if (childData == null) {
eventType = EventType.NodeDeleted;
+ } else if (childData.getStat().getVersion() == 0) {
+ content = new String(childData.getData(), CHARSET);
+ eventType = EventType.NodeCreated;
} else {
content = new String(childData.getData(), CHARSET);
eventType = EventType.NodeDataChanged;
diff --git a/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java b/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java
index d23f91e..30595f9 100644
--- a/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java
+++ b/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java
@@ -283,6 +283,9 @@ public class CuratorZookeeperClient extends AbstractZookeeperClient<CuratorZooke
EventType eventType;
if (childData == null) {
eventType = EventType.NodeDeleted;
+ } else if (childData.getStat().getVersion() == 0) {
+ content = new String(childData.getData(), CHARSET);
+ eventType = EventType.NodeCreated;
} else {
content = new String(childData.getData(), CHARSET);
eventType = EventType.NodeDataChanged;