You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by vi...@apache.org on 2018/11/22 07:41:56 UTC

[incubator-dubbo] branch dev-metadata updated: support ops; modify properties with split -, fix issue

This is an automated email from the ASF dual-hosted git repository.

victory pushed a commit to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/dev-metadata by this push:
     new 65e1640  support ops; modify properties with split -, fix issue
65e1640 is described below

commit 65e16405231dce43c510a1570da420b3ce117239
Author: cvictory <sh...@gmail.com>
AuthorDate: Thu Nov 22 15:41:37 2018 +0800

    support ops; modify properties with split -, fix issue
---
 .../java/org/apache/dubbo/common/Constants.java    | 18 ++++++-----
 .../dubbo/config/AbstractInterfaceConfig.java      |  3 +-
 .../apache/dubbo/config/MetadataReportConfig.java  | 16 ++++++----
 .../apache/dubbo/config/RegistryDataConfig.java    | 35 +++++++++++++---------
 .../metadata/identifier/MetadataIdentifier.java    | 13 +++++++-
 .../metadata/support/AbstractMetadataReport.java   | 29 ++++++++----------
 .../store/test/JTestMetadataReport4Test.java       |  3 +-
 .../support/AbstractMetadataReportTest.java        | 20 ++++++-------
 .../store/redis/RedisMetadataReportTest.java       |  9 +++---
 .../store/zookeeper/ZookeeperMetadataReport.java   |  2 +-
 .../zookeeper/ZookeeperMetadataReportTest.java     |  2 +-
 11 files changed, 87 insertions(+), 63 deletions(-)

diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/Constants.java b/dubbo-common/src/main/java/org/apache/dubbo/common/Constants.java
index 3491787..2d9a77d 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/Constants.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/Constants.java
@@ -165,6 +165,10 @@ public class Constants {
     // default buffer size is 8k.
     public static final int DEFAULT_BUFFER_SIZE = 8 * 1024;
 
+    public static final Integer DEFAULT_METADATA_REPORT_RETRY_TIMES = 100;
+    public static final Integer DEFAULT_METADATA_REPORT_RETRY_PERIOD = 3000;
+    public static final Boolean DEFAULT_METADATA_REPORT_CYCLE_REPORT = true;
+
     public static final int MAX_BUFFER_SIZE = 16 * 1024;
 
     public static final int MIN_BUFFER_SIZE = 1 * 1024;
@@ -469,23 +473,23 @@ public class Constants {
      * simple the registry for provider.
      * @since 2.7.0
      */
-    public static final String SIMPLE_PROVIDER_CONFIG_KEY = "simpleProviderConfig";
+    public static final String SIMPLE_PROVIDER_CONFIG_KEY = "simple-provider-config";
     /**
      * simple the registry for consumer.
      * @since 2.7.0
      */
-    public static final String SIMPLE_CONSUMER_CONFIG_KEY = "simpleConsumerConfig";
+    public static final String SIMPLE_CONSUMER_CONFIG_KEY = "simple-consumer-config";
     /**
      * After simplify the registry, should add some paramter individually for provider.
      * @since 2.7.0
      */
-    public static final String EXTRA_PROVIDER_CONFIG_KEYS_KEY = "extraProviderKeys";
+    public static final String EXTRA_PROVIDER_CONFIG_KEYS_KEY = "extra-provider-keys";
     /**
      * After simplify the registry, should add some paramter individually for consumer.
      *
      * @since 2.7.0
      */
-    public static final String EXTRA_CONSUMER_CONFIG_KEYS_KEY = "extraConsumerKeys";
+    public static final String EXTRA_CONSUMER_CONFIG_KEYS_KEY = "extra-consumer-keys";
 
     /**
      * To decide whether to exclude unavailable invoker from the cluster
@@ -722,11 +726,11 @@ public class Constants {
 
     public static final String ADDRESS_KEY = "address";
 
-    public static final String RETRY_TIMES_KEY = "retrytimes";
+    public static final String RETRY_TIMES_KEY = "retry-times";
 
-    public static final String RETRY_PERIOD_KEY = "retrytimes";
+    public static final String RETRY_PERIOD_KEY = "retry-period";
 
-    public static final String CYCLE_REPORT_KEY = "cyclereport";
+    public static final String CYCLE_REPORT_KEY = "cycle-report";
 
     public static final String API_VERSION_KEY = "apiVersion";
     // package version in the manifest
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
index 3840e0c..0d484a7 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
@@ -241,7 +241,8 @@ public abstract class AbstractInterfaceConfig extends AbstractMethodConfig {
         checkRegistry();
         List<URL> registryList = new ArrayList<URL>();
         if (registries != null && !registries.isEmpty()) {
-            Map<String, String> registryDataConfigurationMap = this.registryDataConfig.transferToMap();
+            Map<String, String> registryDataConfigurationMap = new HashMap<>(4);
+            appendParameters(registryDataConfigurationMap, registryDataConfig);
             for (RegistryConfig config : registries) {
                 String address = config.getAddress();
                 if (address == null || address.length() == 0) {
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/MetadataReportConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/MetadataReportConfig.java
index 25fbb82..90c7fe0 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/MetadataReportConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/MetadataReportConfig.java
@@ -17,6 +17,7 @@
 package org.apache.dubbo.config;
 
 import org.apache.dubbo.common.utils.StringUtils;
+import org.apache.dubbo.config.support.Parameter;
 
 import java.util.Map;
 
@@ -27,7 +28,6 @@ import java.util.Map;
  */
 public class MetadataReportConfig extends AbstractConfig {
 
-    public static final String NO_AVAILABLE = "N/A";
     private static final long serialVersionUID = 55233L;
     // register center address
     private String address;
@@ -44,13 +44,13 @@ public class MetadataReportConfig extends AbstractConfig {
     // customized parameters
     private Map<String, String> parameters;
 
-    private Integer retrytimes = 100;
+    private Integer retrytimes;
 
-    private Integer retryperiod = 3000;
+    private Integer retryperiod;
     /**
      * by default the metadatastore will store full metadata repeatly every day .
      */
-    private boolean cyclereport = true;
+    private Boolean cyclereport;
 
     public MetadataReportConfig() {
     }
@@ -99,6 +99,7 @@ public class MetadataReportConfig extends AbstractConfig {
         this.parameters = parameters;
     }
 
+    @Parameter(key = "retry-times")
     public Integer getRetrytimes() {
         return retrytimes;
     }
@@ -107,6 +108,7 @@ public class MetadataReportConfig extends AbstractConfig {
         this.retrytimes = retrytimes;
     }
 
+    @Parameter(key = "retry-period")
     public Integer getRetryperiod() {
         return retryperiod;
     }
@@ -115,14 +117,16 @@ public class MetadataReportConfig extends AbstractConfig {
         this.retryperiod = retryperiod;
     }
 
-    public boolean isCyclereport() {
+    @Parameter(key = "cycle-report")
+    public Boolean getCyclereport() {
         return cyclereport;
     }
 
-    public void setCyclereport(boolean cyclereport) {
+    public void setCyclereport(Boolean cyclereport) {
         this.cyclereport = cyclereport;
     }
 
+
     public boolean isValid() {
         return StringUtils.isNotEmpty(address);
     }
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryDataConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryDataConfig.java
index be5f72b..9526b05 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryDataConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryDataConfig.java
@@ -16,8 +16,10 @@
  */
 package org.apache.dubbo.config;
 
+import com.sun.org.apache.xpath.internal.operations.Bool;
 import org.apache.dubbo.common.Constants;
 import org.apache.dubbo.common.utils.StringUtils;
+import org.apache.dubbo.config.support.Parameter;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -27,21 +29,21 @@ import java.util.Map;
  */
 public class RegistryDataConfig extends AbstractConfig {
 
-    private boolean simpleProviderConfig;
+    private Boolean simpleProviderConfig;
     private String extraProviderKeys;
 
-    private boolean simpleConsumerConfig;
+    private Boolean simpleConsumerConfig;
     private String extraConsumerKeys;
 
-    public Map<String, String> transferToMap() {
+    Map<String, String> transferToMap() {
         Map<String, String> map = new HashMap<String, String>(4);
-        if (simpleProviderConfig) {
+        if (simpleProviderConfig != null && simpleProviderConfig) {
             map.put(Constants.SIMPLE_PROVIDER_CONFIG_KEY, Boolean.TRUE.toString());
             if (StringUtils.isNotEmpty(extraProviderKeys)) {
                 map.put(Constants.EXTRA_PROVIDER_CONFIG_KEYS_KEY, extraProviderKeys.trim());
             }
         }
-        if (simpleConsumerConfig) {
+        if (simpleConsumerConfig != null && simpleConsumerConfig) {
             map.put(Constants.SIMPLE_CONSUMER_CONFIG_KEY, Boolean.TRUE.toString());
             if (StringUtils.isNotEmpty(extraConsumerKeys)) {
                 map.put(Constants.EXTRA_CONSUMER_CONFIG_KEYS_KEY, extraConsumerKeys.trim());
@@ -51,14 +53,25 @@ public class RegistryDataConfig extends AbstractConfig {
         return map;
     }
 
-    public boolean isSimpleProviderConfig() {
+    @Parameter(key = "simple-provider-config")
+    public Boolean getSimpleProviderConfig() {
         return simpleProviderConfig;
     }
 
-    public void setSimpleProviderConfig(boolean simpleProviderConfig) {
+    public void setSimpleProviderConfig(Boolean simpleProviderConfig) {
         this.simpleProviderConfig = simpleProviderConfig;
     }
 
+    @Parameter(key = "simple-consumer-config")
+    public Boolean getSimpleConsumerConfig() {
+        return simpleConsumerConfig;
+    }
+
+    public void setSimpleConsumerConfig(Boolean simpleConsumerConfig) {
+        this.simpleConsumerConfig = simpleConsumerConfig;
+    }
+
+    @Parameter(key = "extra-provider-keys")
     public String getExtraProviderKeys() {
         return extraProviderKeys;
     }
@@ -67,14 +80,8 @@ public class RegistryDataConfig extends AbstractConfig {
         this.extraProviderKeys = extraProviderKeys;
     }
 
-    public boolean isSimpleConsumerConfig() {
-        return simpleConsumerConfig;
-    }
-
-    public void setSimpleConsumerConfig(boolean simpleConsumerConfig) {
-        this.simpleConsumerConfig = simpleConsumerConfig;
-    }
 
+    @Parameter(key = "extra-consumer-keys")
     public String getExtraConsumerKeys() {
         return extraConsumerKeys;
     }
diff --git a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/identifier/MetadataIdentifier.java b/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/identifier/MetadataIdentifier.java
index e9f4226..ee32a2c 100644
--- a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/identifier/MetadataIdentifier.java
+++ b/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/identifier/MetadataIdentifier.java
@@ -25,11 +25,18 @@ public class MetadataIdentifier {
         this.side = side;
     }
 
+    public String getUniqueKey(KeyTypeEnum keyType) {
+        if (keyType == KeyTypeEnum.UNIQUE_KEY) {
+            return getFilePathKey();
+        }
+        return getIdentifierKey();
+    }
+
     public String getIdentifierKey() {
         return serviceInterface + SEPARATOR + version + SEPARATOR + group + SEPARATOR + side;
     }
 
-    public String getFilePathKey() {
+    private String getFilePathKey() {
         return getFilePathKey(DEFAULT_PATH_TAG);
     }
 
@@ -81,4 +88,8 @@ public class MetadataIdentifier {
     public void setSide(String side) {
         this.side = side;
     }
+
+    public static enum KeyTypeEnum {
+        PATH, UNIQUE_KEY
+    }
 }
diff --git a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/support/AbstractMetadataReport.java b/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/support/AbstractMetadataReport.java
index 044a6da..17cf0fd 100644
--- a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/support/AbstractMetadataReport.java
+++ b/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/support/AbstractMetadataReport.java
@@ -66,7 +66,6 @@ public abstract class AbstractMetadataReport implements MetadataReport {
     final Properties properties = new Properties();
     // File cache timing writing
     private final ExecutorService reportCacheExecutor = Executors.newFixedThreadPool(1, new NamedThreadFactory("DubboSaveMetadataReportCache", true));
-    private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(0, new NamedThreadFactory("DubboMetadataReportTimer", true));
     final Map<MetadataIdentifier, Object> allMetadataReports = new ConcurrentHashMap<MetadataIdentifier, Object>(4);
 
     private final AtomicLong lastCacheChanged = new AtomicLong();
@@ -77,10 +76,10 @@ public abstract class AbstractMetadataReport implements MetadataReport {
     private AtomicBoolean INIT = new AtomicBoolean(false);
     public MetadataReportRetry metadataReportRetry;
 
-    public AbstractMetadataReport(URL reportURL) {
-        setUrl(reportURL);
+    public AbstractMetadataReport(URL reportServerURL) {
+        setUrl(reportServerURL);
         // Start file save timer
-        String filename = reportURL.getParameter(Constants.FILE_KEY, System.getProperty("user.home") + "/.dubbo/dubbo-metadata-" + reportURL.getParameter(Constants.APPLICATION_KEY) + "-" + reportURL.getAddress() + ".cache");
+        String filename = reportServerURL.getParameter(Constants.FILE_KEY, System.getProperty("user.home") + "/.dubbo/dubbo-metadata-" + reportServerURL.getParameter(Constants.APPLICATION_KEY) + "-" + reportServerURL.getAddress() + ".cache");
         File file = null;
         if (ConfigUtils.isNotEmpty(filename)) {
             file = new File(filename);
@@ -96,9 +95,11 @@ public abstract class AbstractMetadataReport implements MetadataReport {
         }
         this.file = file;
         loadProperties();
-        metadataReportRetry = new MetadataReportRetry(reportURL.getParameter(Constants.RETRY_TIMES_KEY, 60 * 60), reportURL.getParameter(Constants.RETRY_PERIOD_KEY, 3000));
+        metadataReportRetry = new MetadataReportRetry(reportServerURL.getParameter(Constants.RETRY_TIMES_KEY, Constants.DEFAULT_METADATA_REPORT_RETRY_TIMES),
+                reportServerURL.getParameter(Constants.RETRY_PERIOD_KEY, Constants.DEFAULT_METADATA_REPORT_RETRY_PERIOD));
         // cycle report the data switch
-        if (reportURL.getParameter(Constants.CYCLE_REPORT_KEY, true)) {
+        if (reportServerURL.getParameter(Constants.CYCLE_REPORT_KEY, Constants.DEFAULT_METADATA_REPORT_CYCLE_REPORT)) {
+            ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(0, new NamedThreadFactory("DubboMetadataReportTimer", true));
             scheduler.scheduleAtFixedRate(new Runnable() {
                 @Override
                 public void run() {
@@ -134,8 +135,7 @@ public abstract class AbstractMetadataReport implements MetadataReport {
             }
             RandomAccessFile raf = new RandomAccessFile(lockfile, "rw");
             try {
-                FileChannel channel = raf.getChannel();
-                try {
+                try (FileChannel channel = raf.getChannel()) {
                     FileLock lock = channel.tryLock();
                     if (lock == null) {
                         throw new IOException("Can not lock the metadataReport cache file " + file.getAbsolutePath() + ", ignore and retry later, maybe multi java process use the file, please config: dubbo.metadata.file=xxx.properties");
@@ -145,17 +145,12 @@ public abstract class AbstractMetadataReport implements MetadataReport {
                         if (!file.exists()) {
                             file.createNewFile();
                         }
-                        FileOutputStream outputFile = new FileOutputStream(file);
-                        try {
+                        try (FileOutputStream outputFile = new FileOutputStream(file)) {
                             properties.store(outputFile, "Dubbo metadataReport Cache");
-                        } finally {
-                            outputFile.close();
                         }
                     } finally {
                         lock.release();
                     }
-                } finally {
-                    channel.close();
                 }
             } finally {
                 raf.close();
@@ -200,9 +195,9 @@ public abstract class AbstractMetadataReport implements MetadataReport {
 
         try {
             if (add) {
-                properties.setProperty(metadataIdentifier.getIdentifierKey(), value);
+                properties.setProperty(metadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY), value);
             } else {
-                properties.remove(metadataIdentifier.getIdentifierKey());
+                properties.remove(metadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY));
             }
             long version = lastCacheChanged.incrementAndGet();
             reportCacheExecutor.execute(new SaveProperties(version));
@@ -248,7 +243,7 @@ public abstract class AbstractMetadataReport implements MetadataReport {
         }
     }
 
-    public void storeConsumerMetadata(ConsumerMetadataIdentifier consumerMetadataIdentifier, Map<String,String> serviceParameterMap) {
+    public void storeConsumerMetadata(ConsumerMetadataIdentifier consumerMetadataIdentifier, Map<String, String> serviceParameterMap) {
         try {
             if (logger.isInfoEnabled()) {
                 logger.info("store consumer metadata. Identifier : " + consumerMetadataIdentifier + "; definition: " + serviceParameterMap);
diff --git a/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/store/test/JTestMetadataReport4Test.java b/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/store/test/JTestMetadataReport4Test.java
index 67294a8..51793bb 100644
--- a/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/store/test/JTestMetadataReport4Test.java
+++ b/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/store/test/JTestMetadataReport4Test.java
@@ -21,6 +21,7 @@ import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.logger.Logger;
 import org.apache.dubbo.common.logger.LoggerFactory;
 import org.apache.dubbo.metadata.identifier.ConsumerMetadataIdentifier;
+import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
 import org.apache.dubbo.metadata.identifier.ProviderMetadataIdentifier;
 import org.apache.dubbo.metadata.support.AbstractMetadataReport;
 import org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter;
@@ -51,7 +52,7 @@ public class JTestMetadataReport4Test extends AbstractMetadataReport {
 
     @Override
     protected void doStoreProviderMetadata(ProviderMetadataIdentifier providerMetadataIdentifier, String serviceDefinitions) {
-        store.put(providerMetadataIdentifier.getIdentifierKey(), serviceDefinitions);
+        store.put(providerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY), serviceDefinitions);
     }
 
     @Override
diff --git a/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/support/AbstractMetadataReportTest.java b/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/support/AbstractMetadataReportTest.java
index 50fa719..37f420d 100644
--- a/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/support/AbstractMetadataReportTest.java
+++ b/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/support/AbstractMetadataReportTest.java
@@ -16,13 +16,13 @@
  */
 package org.apache.dubbo.metadata.support;
 
-import com.alibaba.fastjson.JSON;
 import com.google.gson.Gson;
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder;
 import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
 import org.apache.dubbo.metadata.identifier.ConsumerMetadataIdentifier;
+import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
 import org.apache.dubbo.metadata.identifier.ProviderMetadataIdentifier;
 import org.junit.Assert;
 import org.junit.Before;
@@ -66,7 +66,7 @@ public class AbstractMetadataReportTest {
         String group = null;
         String application = "vic";
         ProviderMetadataIdentifier providerMetadataIdentifier = storePrivider(abstractMetadataReport, interfaceName, version, group, application);
-        Assert.assertNotNull(abstractMetadataReport.store.get(providerMetadataIdentifier.getIdentifierKey()));
+        Assert.assertNotNull(abstractMetadataReport.store.get(providerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY)));
     }
 
     @Test
@@ -85,7 +85,7 @@ public class AbstractMetadataReportTest {
 
         Thread.sleep(2000);
         Assert.assertTrue(singleMetadataReport.file.exists());
-        Assert.assertTrue(singleMetadataReport.properties.containsKey(providerMetadataIdentifier.getIdentifierKey()));
+        Assert.assertTrue(singleMetadataReport.properties.containsKey(providerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY)));
     }
 
     @Test
@@ -198,17 +198,17 @@ public class AbstractMetadataReportTest {
 
         Assert.assertTrue(abstractMetadataReport.store.size() == 3);
 
-        String v = abstractMetadataReport.store.get(providerMetadataIdentifier1.getIdentifierKey());
+        String v = abstractMetadataReport.store.get(providerMetadataIdentifier1.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY));
         Gson gson = new Gson();
         FullServiceDefinition data = gson.fromJson(v, FullServiceDefinition.class);
         checkParam(data.getParameters(), application, version);
 
-        String v2 = abstractMetadataReport.store.get(providerMetadataIdentifier2.getIdentifierKey());
+        String v2 = abstractMetadataReport.store.get(providerMetadataIdentifier2.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY));
         gson = new Gson();
         data = gson.fromJson(v2, FullServiceDefinition.class);
         checkParam(data.getParameters(), application, version + "_2");
 
-        String v3 = abstractMetadataReport.store.get(consumerMetadataIdentifier.getIdentifierKey());
+        String v3 = abstractMetadataReport.store.get(consumerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY));
         gson = new Gson();
         Map v3Map = gson.fromJson(v3, Map.class);
         checkParam(v3Map, application, version + "_3");
@@ -260,12 +260,12 @@ public class AbstractMetadataReportTest {
 
         @Override
         protected void doStoreProviderMetadata(ProviderMetadataIdentifier providerMetadataIdentifier, String serviceDefinitions) {
-            store.put(providerMetadataIdentifier.getIdentifierKey(), serviceDefinitions);
+            store.put(providerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY), serviceDefinitions);
         }
 
         @Override
         protected void doStoreConsumerMetadata(ConsumerMetadataIdentifier consumerMetadataIdentifier, String serviceParameterString) {
-            store.put(consumerMetadataIdentifier.getIdentifierKey(), serviceParameterString);
+            store.put(consumerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY), serviceParameterString);
         }
     }
 
@@ -287,7 +287,7 @@ public class AbstractMetadataReportTest {
             if (executeTimes <= needRetryTimes) {
                 throw new RuntimeException("must retry:" + executeTimes);
             }
-            store.put(providerMetadataIdentifier.getIdentifierKey(), serviceDefinitions);
+            store.put(providerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY), serviceDefinitions);
         }
 
         @Override
@@ -296,7 +296,7 @@ public class AbstractMetadataReportTest {
             if (executeTimes <= needRetryTimes) {
                 throw new RuntimeException("must retry:" + executeTimes);
             }
-            store.put(consumerMetadataIdentifier.getIdentifierKey(), serviceParameterString);
+            store.put(consumerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY), serviceParameterString);
         }
     }
 
diff --git a/dubbo-metadata-report/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java b/dubbo-metadata-report/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java
index 2c3b336..6f047ed 100644
--- a/dubbo-metadata-report/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java
+++ b/dubbo-metadata-report/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java
@@ -6,6 +6,7 @@ import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder;
 import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
 import org.apache.dubbo.metadata.identifier.ConsumerMetadataIdentifier;
+import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
 import org.apache.dubbo.metadata.identifier.ProviderMetadataIdentifier;
 import org.apache.dubbo.rpc.RpcException;
 import org.junit.After;
@@ -53,7 +54,7 @@ public class RedisMetadataReportTest {
         Jedis jedis = null;
         try {
             jedis = redisMetadataReport.pool.getResource();
-            String value = jedis.get(providerMetadataIdentifier.getIdentifierKey() + META_DATA_SOTRE_TAG);
+            String value = jedis.get(providerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY) + META_DATA_SOTRE_TAG);
             Assert.assertNotNull(value);
 
             Gson gson = new Gson();
@@ -63,7 +64,7 @@ public class RedisMetadataReportTest {
             throw new RpcException("Failed to put to redis . cause: " + e.getMessage(), e);
         } finally {
             if (jedis != null) {
-                jedis.del(providerMetadataIdentifier.getIdentifierKey() + META_DATA_SOTRE_TAG);
+                jedis.del(providerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY) + META_DATA_SOTRE_TAG);
             }
             redisMetadataReport.pool.close();
         }
@@ -79,13 +80,13 @@ public class RedisMetadataReportTest {
         Jedis jedis = null;
         try {
             jedis = redisMetadataReport.pool.getResource();
-            String value = jedis.get(consumerMetadataIdentifier.getIdentifierKey() + META_DATA_SOTRE_TAG);
+            String value = jedis.get(consumerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY) + META_DATA_SOTRE_TAG);
             Assert.assertEquals(value, "{\"paramConsumerTest\":\"redisCm\"}");
         } catch (Throwable e) {
             throw new RpcException("Failed to put to redis . cause: " + e.getMessage(), e);
         } finally {
             if (jedis != null) {
-                jedis.del(consumerMetadataIdentifier.getIdentifierKey() + META_DATA_SOTRE_TAG);
+                jedis.del(consumerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY) + META_DATA_SOTRE_TAG);
             }
             redisMetadataReport.pool.close();
         }
diff --git a/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java b/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java
index 0f702e8..1181299 100644
--- a/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java
+++ b/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java
@@ -89,7 +89,7 @@ public class ZookeeperMetadataReport extends AbstractMetadataReport {
     }
 
     String getNodePath(MetadataIdentifier metadataIdentifier) {
-        return toRootDir() + metadataIdentifier.getFilePathKey() + Constants.PATH_SEPARATOR + METADATA_NODE_NAME;
+        return toRootDir() + metadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.PATH) + Constants.PATH_SEPARATOR + METADATA_NODE_NAME;
     }
 
 
diff --git a/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java b/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java
index db54870..24daac7 100644
--- a/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java
+++ b/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java
@@ -44,7 +44,7 @@ public class ZookeeperMetadataReportTest {
     }
 
     private void deletePath(MetadataIdentifier metadataIdentifier, ZookeeperMetadataReport zookeeperMetadataReport) {
-        String category = zookeeperMetadataReport.toRootDir() + metadataIdentifier.getFilePathKey();
+        String category = zookeeperMetadataReport.toRootDir() + metadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.PATH);
         zookeeperMetadataReport.deletePath(category);
     }