MessageAgent增加rpcFirst配置

This commit is contained in:
redkale
2023-10-17 10:20:06 +08:00
parent c3928fdc2b
commit 2155c58989
3 changed files with 17 additions and 6 deletions

View File

@@ -1212,11 +1212,14 @@ public final class Application {
if (this.messageAgents != null) {
MessageAgent messageAgent = this.resourceFactory.find(resourceName, MessageAgent.class);
if (messageAgent != null) {
HttpRpcClient rpcClient = messageAgent.getHttpRpcClient();
field.set(srcObj, rpcClient);
rf.inject(resourceName, rpcClient, null); // 给其可能包含@Resource的字段赋值;
rf.register(resourceName, HttpRpcClient.class, rpcClient);
return rpcClient;
if (clusterAgent == null || !Objects.equals(clusterAgent.getName(), resourceName)
|| messageAgent.isRpcFirst()) {
HttpRpcClient rpcClient = messageAgent.getHttpRpcClient();
field.set(srcObj, rpcClient);
rf.inject(resourceName, rpcClient, null); // 给其可能包含@Resource的字段赋值;
rf.register(resourceName, HttpRpcClient.class, rpcClient);
return rpcClient;
}
}
}
if (clusterAgent == null) {

View File

@@ -78,6 +78,8 @@ public abstract class MessageAgent implements Resourcable {
protected final Map<String, Map<String, MessageConsumerWrapper>> messageConsumerMap = new HashMap<>();
//-------------------------- HttpRpcClient、SncpMessageClient --------------------------
private boolean rpcFirst;
private HttpRpcMessageClient httpRpcClient;
private String httpAppRespTopic;
@@ -100,6 +102,7 @@ public abstract class MessageAgent implements Resourcable {
public void init(AnyValue config) {
this.name = checkName(config.getValue("name", ""));
this.rpcFirst = config.getBoolValue("rpcfirst", false);
this.httpAppRespTopic = generateHttpAppRespTopic();
this.sncpAppRespTopic = generateSncpAppRespTopic();
int threads = config.getIntValue("threads", application.isVirtualWorkExecutor() ? 0 : -1);
@@ -344,6 +347,10 @@ public abstract class MessageAgent implements Resourcable {
return sncpMessageClient;
}
public boolean isRpcFirst() {
return rpcFirst;
}
protected String checkName(String name) { //不能含特殊字符
if (name.isEmpty()) {
return name;