From f723437cde339b2386b68cfd652091c5dd3b8938 Mon Sep 17 00:00:00 2001 From: meiwei <309921330@qq.com> Date: Fri, 22 Jul 2022 18:31:31 +0800 Subject: [PATCH] =?UTF-8?q?perf[net]:=20=E4=BC=98=E5=8C=96consumer?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=87=8D=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/zfoo/net/config/manager/ConfigManager.java | 7 +++---- .../java/com/zfoo/net/config/model/ConsumerModule.java | 4 ++++ .../java/com/zfoo/net/consumer/registry/RegisterVO.java | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/net/src/main/java/com/zfoo/net/config/manager/ConfigManager.java b/net/src/main/java/com/zfoo/net/config/manager/ConfigManager.java index 353dc226..2f049530 100644 --- a/net/src/main/java/com/zfoo/net/config/manager/ConfigManager.java +++ b/net/src/main/java/com/zfoo/net/config/manager/ConfigManager.java @@ -20,6 +20,7 @@ import com.zfoo.protocol.ProtocolManager; import com.zfoo.protocol.collection.CollectionUtils; import com.zfoo.protocol.registration.ProtocolModule; import com.zfoo.protocol.util.AssertionUtils; +import com.zfoo.protocol.util.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -79,8 +80,7 @@ public class ConfigManager implements IConfigManager { var consumerConfig = localConfig.getConsumer(); if (Objects.nonNull(consumerConfig) && CollectionUtils.isNotEmpty(consumerConfig.getConsumers())) { - var set = new HashSet(); - var protocolModuleSet = new HashSet(); + var protocolModuleSet = new HashSet(); for (var consumerModule : consumerConfig.getConsumers()) { // 提供的接口实现 提供者名 var consumer = consumerModule.getConsumer(); @@ -88,8 +88,7 @@ public class ConfigManager implements IConfigManager { var protocolModule = ProtocolManager.moduleByModuleName(protocolModuleName); AssertionUtils.isTrue(protocolModule != null, "服务消费者[name:{}]在协议文件中不存在", protocolModuleName); consumerModule.setProtocolModule(protocolModule); - AssertionUtils.isTrue(set.add(consumer), "服务消费者[name:{}]配置重复", consumer); - AssertionUtils.isTrue(protocolModuleSet.add(protocolModule), "服务消费者[name:{}]重复消费了协议模块{}", consumer, protocolModule); + AssertionUtils.isTrue(protocolModuleSet.add(StringUtils.joinWith(StringUtils.HYPHEN, protocolModuleName, consumer)), "服务消费者[name:{}]重复消费了协议模块{}", consumer, protocolModule); } } diff --git a/net/src/main/java/com/zfoo/net/config/model/ConsumerModule.java b/net/src/main/java/com/zfoo/net/config/model/ConsumerModule.java index f711144e..5dcc340c 100644 --- a/net/src/main/java/com/zfoo/net/config/model/ConsumerModule.java +++ b/net/src/main/java/com/zfoo/net/config/model/ConsumerModule.java @@ -41,6 +41,10 @@ public class ConsumerModule { this.consumer = consumer; this.loadBalancer = loadBalancer; } + + public boolean matchProvider(ProviderModule providerModule) { + return Objects.equals(protocolModule.getName(), providerModule.getProtocolModule().getName()) && Objects.equals(consumer, providerModule.getProvider()); + } public String getConsumer() { return consumer; diff --git a/net/src/main/java/com/zfoo/net/consumer/registry/RegisterVO.java b/net/src/main/java/com/zfoo/net/consumer/registry/RegisterVO.java index 3c22a3ee..ffaaee8c 100644 --- a/net/src/main/java/com/zfoo/net/consumer/registry/RegisterVO.java +++ b/net/src/main/java/com/zfoo/net/consumer/registry/RegisterVO.java @@ -54,7 +54,7 @@ public class RegisterVO { return false; } for (var provider : providerVO.getProviderConfig().getProviders()) { - if (consumerVO.getConsumerConfig().getConsumers().stream().anyMatch(it -> provider.getProvider().equals(it.getConsumer()))) { + if (consumerVO.getConsumerConfig().getConsumers().stream().anyMatch(it -> it.matchProvider(provider))) { return true; } }