From 3ad550f211e652677b9776766944b5249f0fa6ab Mon Sep 17 00:00:00 2001 From: chris Date: Wed, 14 Apr 2021 09:59:49 +0800 Subject: [PATCH] bugfix invokers metadata tag error --- .../cloud/dubbo/registry/DubboCloudRegistry.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/DubboCloudRegistry.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/DubboCloudRegistry.java index 2101a217..04d9c99e 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/DubboCloudRegistry.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/DubboCloudRegistry.java @@ -308,6 +308,16 @@ public class DubboCloudRegistry extends FailbackRegistry { String protocol = templateURL.getProtocol(); Integer port = repository.getDubboProtocolPort(serviceInstance, protocol); + + // reserve tag + String tag = null; + List urls = jsonUtils.toURLs(serviceInstance.getMetadata() + .get("dubbo.metadata-service.urls")); + if (urls != null && urls.size() > 0) { + Map parameters = urls.get(0).getParameters(); + tag = parameters.get("dubbo.tag"); + } + if (Objects.equals(templateURL.getHost(), host) && Objects.equals(templateURL.getPort(), port)) { // use // templateURL @@ -331,7 +341,8 @@ public class DubboCloudRegistry extends FailbackRegistry { // the template // URL .setHost(host) // reset the host - .setPort(port); // reset the port + .setPort(port) // reset the port + .addParameter("dubbo.tag", tag); // reset the tag return clonedURLBuilder.build(); }