mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-09-04 08:20:03 +00:00
fix[lua]: read lua in one protocol
This commit is contained in:
@@ -58,20 +58,15 @@ public class ConfigManager implements IConfigManager {
|
||||
public void initRegistry() {
|
||||
// 通过protocol,写入provider的module的id和version
|
||||
var providerConfig = localConfig.getProvider();
|
||||
if (Objects.nonNull(providerConfig) && CollectionUtils.isNotEmpty(providerConfig.getProviders())) {
|
||||
if (providerConfig != null && CollectionUtils.isNotEmpty(providerConfig.getProviders())) {
|
||||
// 服务提供者名字Set列表
|
||||
var providerSet = new HashSet<String>();
|
||||
// 检查并且替换配置文件中的ProtocolModule
|
||||
for (var providerModule : providerConfig.getProviders()) {
|
||||
var provider = providerModule.getProvider();
|
||||
var protocolModuleName = providerModule.getProtocolModule().getName();
|
||||
|
||||
// 从protocol中读值
|
||||
var protocolModule = ProtocolManager.moduleByModuleName(protocolModuleName);
|
||||
AssertionUtils.isTrue(protocolModule != null, "服务提供者[name:{}]在协议文件中不存在", protocolModuleName);
|
||||
providerModule.setProtocolModule(protocolModule);
|
||||
var providerName = StringUtils.joinWith(StringUtils.HYPHEN, protocolModuleName, provider);
|
||||
AssertionUtils.isTrue(providerSet.add(providerName), "服务提供者[name:{}]重复消费协议模块[provider:{}]", protocolModuleName, provider);
|
||||
var protocolModule = ProtocolManager.moduleByModuleName(provider);
|
||||
AssertionUtils.isTrue(protocolModule != null, "provider:[{}] does not exist in the protocol manager", provider);
|
||||
AssertionUtils.isTrue(providerSet.add(provider), "provider:[{}] plicate Consumption Agreement module [provider:{}]", protocolModuleName, provider);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,17 +74,10 @@ public class ConfigManager implements IConfigManager {
|
||||
if (Objects.nonNull(consumerConfig) && CollectionUtils.isNotEmpty(consumerConfig.getConsumers())) {
|
||||
// 服务消费者名字Set列表
|
||||
var consumerSet = new HashSet<String>();
|
||||
var protocolModuleSet = new HashSet<String>();
|
||||
for (var consumerModule : consumerConfig.getConsumers()) {
|
||||
// 提供的接口实现 提供者名
|
||||
var consumer = consumerModule.getConsumer();
|
||||
var protocolModuleName = consumerModule.getProtocolModule().getName();
|
||||
var protocolModule = ProtocolManager.moduleByModuleName(protocolModuleName);
|
||||
AssertionUtils.isTrue(protocolModule != null, "服务消费者[name:{}]在协议文件中不存在", protocolModuleName);
|
||||
consumerModule.setProtocolModule(protocolModule);
|
||||
AssertionUtils.isTrue(protocolModuleSet.add(protocolModuleName), "服务消费者[name:{}]重复消费了协议模块", protocolModuleName);
|
||||
var consumerName = StringUtils.joinWith(StringUtils.HYPHEN, protocolModuleName, consumer);
|
||||
AssertionUtils.isTrue(consumerSet.add(consumerName), "服务消费者[name:{}]重复消费了协议模块[consumer:{}]", protocolModuleName, consumer);
|
||||
AssertionUtils.isTrue(consumerSet.add(consumer), "服务消费者[name:{}]重复消费了协议模块[consumer:{}]", protocolModuleName, consumer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,30 +21,17 @@ import java.util.Objects;
|
||||
*/
|
||||
public class ConsumerModule {
|
||||
|
||||
private ProtocolModule protocolModule;
|
||||
|
||||
// 负载均衡方式
|
||||
private String loadBalancer;
|
||||
|
||||
// 消费哪个provider
|
||||
private String consumer;
|
||||
|
||||
public ConsumerModule(ProtocolModule protocolModule, String loadBalancer, String consumer) {
|
||||
this.protocolModule = protocolModule;
|
||||
public ConsumerModule(String loadBalancer, String consumer) {
|
||||
this.consumer = consumer;
|
||||
this.loadBalancer = loadBalancer;
|
||||
}
|
||||
|
||||
public ConsumerModule(String protocolModule, String loadBalancer, String consumer) {
|
||||
this.protocolModule = new ProtocolModule((byte) 0, protocolModule);
|
||||
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;
|
||||
}
|
||||
@@ -61,14 +48,6 @@ public class ConsumerModule {
|
||||
this.loadBalancer = loadBalancer;
|
||||
}
|
||||
|
||||
public ProtocolModule getProtocolModule() {
|
||||
return protocolModule;
|
||||
}
|
||||
|
||||
public void setProtocolModule(ProtocolModule protocolModule) {
|
||||
this.protocolModule = protocolModule;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
@@ -78,11 +57,11 @@ public class ConsumerModule {
|
||||
return false;
|
||||
}
|
||||
ConsumerModule that = (ConsumerModule) o;
|
||||
return Objects.equals(protocolModule, that.protocolModule) && Objects.equals(consumer, that.consumer);
|
||||
return Objects.equals(consumer, that.consumer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(protocolModule, loadBalancer, consumer);
|
||||
return Objects.hash(loadBalancer, consumer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,21 +24,25 @@ public class ProviderModule {
|
||||
/**
|
||||
* 模块id和模块名
|
||||
*/
|
||||
private ProtocolModule protocolModule;
|
||||
private String protocolModule;
|
||||
|
||||
/**
|
||||
* 提供者名字
|
||||
*/
|
||||
private String provider;
|
||||
|
||||
public ProviderModule(ProtocolModule protocolModule, String provider) {
|
||||
|
||||
public ProviderModule(String protocolModule, String provider) {
|
||||
this.protocolModule = protocolModule;
|
||||
this.provider = provider;
|
||||
}
|
||||
|
||||
public ProviderModule(String protocolModule, String provider) {
|
||||
this.protocolModule = new ProtocolModule((byte) 0, protocolModule);
|
||||
this.provider = provider;
|
||||
public String getProtocolModule() {
|
||||
return protocolModule;
|
||||
}
|
||||
|
||||
public void setProtocolModule(String protocolModule) {
|
||||
this.protocolModule = protocolModule;
|
||||
}
|
||||
|
||||
public String getProvider() {
|
||||
@@ -49,14 +53,6 @@ public class ProviderModule {
|
||||
this.provider = provider;
|
||||
}
|
||||
|
||||
public ProtocolModule getProtocolModule() {
|
||||
return protocolModule;
|
||||
}
|
||||
|
||||
public void setProtocolModule(ProtocolModule protocolModule) {
|
||||
this.protocolModule = protocolModule;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
|
||||
@@ -52,7 +52,7 @@ public class RegisterVO {
|
||||
return false;
|
||||
}
|
||||
for (var provider : providerVO.getProviderConfig().getProviders()) {
|
||||
if (consumerVO.getConsumerConfig().getConsumers().stream().anyMatch(it -> it.matchProvider(provider))) {
|
||||
if (consumerVO.getConsumerConfig().getConsumers().stream().anyMatch(it -> it.getConsumer().equals(provider.getProvider()))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -119,7 +119,7 @@ public class RegisterVO {
|
||||
var modules = Arrays.stream(moduleSplits)
|
||||
.map(it -> it.trim())
|
||||
.map(it -> it.split(StringUtils.HYPHEN))
|
||||
.map(it -> new ConsumerModule(new ProtocolModule(Byte.parseByte(it[0]), it[1]), it[2], it[3]))
|
||||
.map(it -> new ConsumerModule(it[0], it[1]))
|
||||
.toList();
|
||||
return modules;
|
||||
}
|
||||
@@ -166,7 +166,7 @@ public class RegisterVO {
|
||||
builder.append(StringUtils.SPACE).append(StringUtils.VERTICAL_BAR).append(StringUtils.SPACE);
|
||||
|
||||
var consumerModules = consumerConfig.getConsumers().stream()
|
||||
.map(it -> StringUtils.joinWith(StringUtils.HYPHEN, it.getProtocolModule().getId(), it.getProtocolModule().getName(), it.getLoadBalancer(), it.getConsumer()))
|
||||
.map(it -> StringUtils.joinWith(StringUtils.HYPHEN, it.getLoadBalancer(), it.getConsumer()))
|
||||
.toList();
|
||||
|
||||
// 服务消费者模块信息列表
|
||||
|
||||
@@ -218,7 +218,6 @@ public class NetDefinitionParser implements BeanDefinitionParser {
|
||||
var clazz = ConsumerModule.class;
|
||||
var builder = BeanDefinitionBuilder.rootBeanDefinition(clazz);
|
||||
|
||||
builder.addConstructorArgValue(environment.resolvePlaceholders(addressElement.getAttribute("protocol-module")));
|
||||
builder.addConstructorArgValue(environment.resolvePlaceholders(addressElement.getAttribute("load-balancer")));
|
||||
builder.addConstructorArgValue(environment.resolvePlaceholders(addressElement.getAttribute("consumer")));
|
||||
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="consumerAttributeType">
|
||||
<xsd:attribute name="protocol-module" type="xsd:string" use="required"/>
|
||||
<xsd:attribute name="load-balancer" type="xsd:string" default="consistent-hash"/>
|
||||
<xsd:attribute name="consumer" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
<net:address name="firstZookeeper" url="127.0.0.1:2181"/>
|
||||
</net:registry>
|
||||
|
||||
<!--1.声明自己是个消费者 2.指明自己可以消费的接口是providerTest中声明的接口 3.消费的接口是服务提供者是myProvider1提供的具体实现-->
|
||||
<!--1.声明自己是个消费者 2.消费的接口是服务提供者是myProvider1提供的具体实现-->
|
||||
<net:consumers>
|
||||
<net:consumer protocol-module="providerTest" consumer="myProvider1"/>
|
||||
<net:consumer consumer="myProvider1"/>
|
||||
</net:consumers>
|
||||
|
||||
</net:config>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
</net:registry>
|
||||
|
||||
<net:consumers>
|
||||
<net:consumer protocol-module="providerTest" load-balancer="consistent-hash" consumer="myProvider1"/>
|
||||
<net:consumer load-balancer="consistent-hash" consumer="myProvider1"/>
|
||||
</net:consumers>
|
||||
</net:config>
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</net:registry>
|
||||
|
||||
<net:consumers>
|
||||
<net:consumer protocol-module="providerTest" load-balancer="random" consumer="myProvider1"/>
|
||||
<net:consumer load-balancer="random" consumer="myProvider1"/>
|
||||
</net:consumers>
|
||||
</net:config>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user