Fix dubbo.tag override by consumer.tag in NacosRegistry (#13592)
This commit is contained in:
parent
180ff9785a
commit
fed4755cd6
|
|
@ -32,7 +32,6 @@ import org.apache.dubbo.common.utils.ConcurrentHashMapUtils;
|
|||
import org.apache.dubbo.common.utils.StringUtils;
|
||||
import org.apache.dubbo.common.utils.UrlUtils;
|
||||
import org.apache.dubbo.registry.NotifyListener;
|
||||
import org.apache.dubbo.registry.ProviderFirstParams;
|
||||
import org.apache.dubbo.rpc.model.ScopeModel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -41,7 +40,6 @@ import java.util.HashMap;
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
|
|
@ -319,20 +317,6 @@ public abstract class CacheableFailbackRegistry extends FailbackRegistry {
|
|||
return new DubboServiceAddressURL(address, param, consumerURL, null);
|
||||
}
|
||||
|
||||
protected URL removeParamsFromConsumer(URL consumer) {
|
||||
Set<ProviderFirstParams> providerFirstParams = consumer.getOrDefaultApplicationModel()
|
||||
.getExtensionLoader(ProviderFirstParams.class)
|
||||
.getSupportedExtensionInstances();
|
||||
if (CollectionUtils.isEmpty(providerFirstParams)) {
|
||||
return consumer;
|
||||
}
|
||||
|
||||
for (ProviderFirstParams paramsFilter : providerFirstParams) {
|
||||
consumer = consumer.removeParameters(paramsFilter.params());
|
||||
}
|
||||
return consumer;
|
||||
}
|
||||
|
||||
private String stripOffVariableKeys(String rawProvider) {
|
||||
String[] keys = getVariableKeys();
|
||||
if (keys == null || keys.length == 0) {
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import org.apache.dubbo.common.timer.HashedWheelTimer;
|
|||
import org.apache.dubbo.common.utils.CollectionUtils;
|
||||
import org.apache.dubbo.common.utils.NamedThreadFactory;
|
||||
import org.apache.dubbo.registry.NotifyListener;
|
||||
import org.apache.dubbo.registry.ProviderFirstParams;
|
||||
import org.apache.dubbo.registry.retry.FailedRegisteredTask;
|
||||
import org.apache.dubbo.registry.retry.FailedSubscribedTask;
|
||||
import org.apache.dubbo.registry.retry.FailedUnregisteredTask;
|
||||
|
|
@ -177,6 +178,20 @@ public abstract class FailbackRegistry extends AbstractRegistry {
|
|||
}
|
||||
}
|
||||
|
||||
protected URL removeParamsFromConsumer(URL consumer) {
|
||||
Set<ProviderFirstParams> providerFirstParams = consumer.getOrDefaultApplicationModel()
|
||||
.getExtensionLoader(ProviderFirstParams.class)
|
||||
.getSupportedExtensionInstances();
|
||||
if (CollectionUtils.isEmpty(providerFirstParams)) {
|
||||
return consumer;
|
||||
}
|
||||
|
||||
for (ProviderFirstParams paramsFilter : providerFirstParams) {
|
||||
consumer = consumer.removeParameters(paramsFilter.params());
|
||||
}
|
||||
return consumer;
|
||||
}
|
||||
|
||||
ConcurrentMap<URL, FailedRegisteredTask> getFailedRegistered() {
|
||||
return failedRegistered;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -573,6 +573,7 @@ public class NacosRegistry extends FailbackRegistry {
|
|||
}
|
||||
|
||||
private List<URL> toUrlWithEmpty(URL consumerURL, Collection<Instance> instances) {
|
||||
consumerURL = removeParamsFromConsumer(consumerURL);
|
||||
List<URL> urls = buildURLs(consumerURL, instances);
|
||||
// Nacos does not support configurators and routers from registry, so all notifications are of providers type.
|
||||
if (urls.size() == 0 && !getUrl().getParameter(ENABLE_EMPTY_PROTECTION_KEY, DEFAULT_ENABLE_EMPTY_PROTECTION)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue