diff --git a/client/src/main/java/com/alibaba/nacos/client/address/AbstractServerListManager.java b/client/src/main/java/com/alibaba/nacos/client/address/AbstractServerListManager.java index ea760cdc30a..424664b9fbd 100644 --- a/client/src/main/java/com/alibaba/nacos/client/address/AbstractServerListManager.java +++ b/client/src/main/java/com/alibaba/nacos/client/address/AbstractServerListManager.java @@ -29,6 +29,7 @@ import java.util.Collection; import java.util.List; +import java.util.stream.Collectors; /** * Server list Manager. @@ -57,7 +58,9 @@ public AbstractServerListManager(NacosClientProperties properties, String namesp properties.setProperty(PropertyKeyConst.CLIENT_MODULE_TYPE, getModuleName()); this.properties = properties; Collection serverListProviders = NacosServiceLoader.load(ServerListProvider.class); - for (ServerListProvider each : serverListProviders) { + Collection sorted = serverListProviders.stream() + .sorted((a, b) -> b.getOrder() - a.getOrder()).collect(Collectors.toList()); + for (ServerListProvider each : sorted) { if (each.match(properties)) { this.serverListProvider = each; break; diff --git a/client/src/main/java/com/alibaba/nacos/client/config/impl/ConfigHttpClientManager.java b/client/src/main/java/com/alibaba/nacos/client/config/impl/ConfigHttpClientManager.java index a18c9fd1e7b..9afc49cfcf1 100644 --- a/client/src/main/java/com/alibaba/nacos/client/config/impl/ConfigHttpClientManager.java +++ b/client/src/main/java/com/alibaba/nacos/client/config/impl/ConfigHttpClientManager.java @@ -39,6 +39,7 @@ import java.io.IOException; import java.io.InputStream; import java.net.URI; +import java.util.List; import static com.alibaba.nacos.client.utils.LogUtils.NAMING_LOGGER; @@ -97,7 +98,10 @@ public int getConnectTimeoutOrDefault(int connectTimeout) { */ public NacosRestTemplate getNacosRestTemplate() { NacosRestTemplate nacosRestTemplate = HttpClientBeanHolder.getNacosRestTemplate(HTTP_CLIENT_FACTORY); - nacosRestTemplate.getInterceptors().add(limiterHttpClientRequestInterceptor); + List interceptors = nacosRestTemplate.getInterceptors(); + if (!interceptors.contains(limiterHttpClientRequestInterceptor)) { + interceptors.add(limiterHttpClientRequestInterceptor); + } return nacosRestTemplate; }