From 2c82cf7dfccd435be7f8de7346a937a27f2d0a9a Mon Sep 17 00:00:00 2001 From: wxbty <38374721+wxbty@users.noreply.github.com> Date: Sat, 24 Jun 2023 17:02:15 +0800 Subject: [PATCH] Use serviceKey when to metadata ServiceSubscribeEvent (#12586) --- .../dubbo/metadata/report/identifier/MetadataIdentifier.java | 4 ++++ .../dubbo/metadata/report/support/AbstractMetadataReport.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/identifier/MetadataIdentifier.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/identifier/MetadataIdentifier.java index b035a4fcea..9ce637f2ad 100644 --- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/identifier/MetadataIdentifier.java +++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/identifier/MetadataIdentifier.java @@ -97,4 +97,8 @@ public class MetadataIdentifier extends BaseServiceMetadataIdentifier implements this.application = application; } + public String getUniqueServiceName() { + return serviceInterface != null ? URL.buildKey(serviceInterface, getGroup(), getVersion()) : null; + } + } diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReport.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReport.java index dbfd78dc55..1c26581a95 100644 --- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReport.java +++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReport.java @@ -279,7 +279,7 @@ public abstract class AbstractMetadataReport implements MetadataReport { private void storeProviderMetadataTask(MetadataIdentifier providerMetadataIdentifier, ServiceDefinition serviceDefinition) { - MetadataEvent metadataEvent = MetadataEvent.toServiceSubscribeEvent(applicationModel, serviceDefinition.getCanonicalName()); + MetadataEvent metadataEvent = MetadataEvent.toServiceSubscribeEvent(applicationModel, providerMetadataIdentifier.getUniqueServiceName()); MetricsEventBus.post(metadataEvent, () -> { boolean result = true;