[ISSUE #7777] Optimize the logic of DefaultRequestProcessor#getTopicsByCluster to avoid unnecessary deserialization (#7778)

This commit is contained in:
mxsm
2024-01-29 08:34:29 +08:00
committed by GitHub
parent e104273fd0
commit a0cb9d42e3
@@ -366,7 +366,7 @@ public class DefaultRequestProcessor implements NettyRequestProcessor {
}
public RemotingCommand unregisterBroker(ChannelHandlerContext ctx,
RemotingCommand request) throws RemotingCommandException {
RemotingCommand request) throws RemotingCommandException {
final RemotingCommand response = RemotingCommand.createResponseCommand(null);
final UnRegisterBrokerRequestHeader requestHeader = (UnRegisterBrokerRequestHeader) request.decodeCommandCustomHeader(UnRegisterBrokerRequestHeader.class);
@@ -387,7 +387,6 @@ public class DefaultRequestProcessor implements NettyRequestProcessor {
final BrokerHeartbeatRequestHeader requestHeader =
(BrokerHeartbeatRequestHeader) request.decodeCommandCustomHeader(BrokerHeartbeatRequestHeader.class);
this.namesrvController.getRouteInfoManager().updateBrokerInfoUpdateTimestamp(requestHeader.getClusterName(), requestHeader.getBrokerAddr());
response.setCode(ResponseCode.SUCCESS);
@@ -522,21 +521,21 @@ public class DefaultRequestProcessor implements NettyRequestProcessor {
private RemotingCommand getTopicsByCluster(ChannelHandlerContext ctx,
RemotingCommand request) throws RemotingCommandException {
final RemotingCommand response = RemotingCommand.createResponseCommand(null);
boolean enableTopicList = namesrvController.getNamesrvConfig().isEnableTopicList();
if (!enableTopicList) {
response.setCode(ResponseCode.SYSTEM_ERROR);
response.setRemark("disable");
return response;
}
final GetTopicsByClusterRequestHeader requestHeader =
(GetTopicsByClusterRequestHeader) request.decodeCommandCustomHeader(GetTopicsByClusterRequestHeader.class);
boolean enableTopicList = namesrvController.getNamesrvConfig().isEnableTopicList();
if (enableTopicList) {
TopicList topicsByCluster = this.namesrvController.getRouteInfoManager().getTopicsByCluster(requestHeader.getCluster());
byte[] body = topicsByCluster.encode();
TopicList topicsByCluster = this.namesrvController.getRouteInfoManager().getTopicsByCluster(requestHeader.getCluster());
byte[] body = topicsByCluster.encode();
response.setBody(body);
response.setCode(ResponseCode.SUCCESS);
response.setRemark(null);
} else {
response.setCode(ResponseCode.SYSTEM_ERROR);
response.setRemark("disable");
}
response.setBody(body);
response.setCode(ResponseCode.SUCCESS);
response.setRemark(null);
return response;
}