From a0cb9d42e3bc78fb9d931aed370a738cb17d992f Mon Sep 17 00:00:00 2001 From: mxsm Date: Mon, 29 Jan 2024 08:34:29 +0800 Subject: [PATCH] [ISSUE #7777] Optimize the logic of DefaultRequestProcessor#getTopicsByCluster to avoid unnecessary deserialization (#7778) --- .../processor/DefaultRequestProcessor.java | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessor.java b/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessor.java index 2daa95b9bc..deb51e4fc1 100644 --- a/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessor.java +++ b/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessor.java @@ -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; }