From 0dea49fb7cde8677f93a6b2b00459737c84aa4c1 Mon Sep 17 00:00:00 2001 From: yx9o Date: Sat, 25 Oct 2025 00:02:56 +0800 Subject: [PATCH] [ISSUE #9780] Skip unnecessary RPC when topic has no message queues --- .../client/impl/consumer/RebalanceImpl.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceImpl.java b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceImpl.java index b6f1d99b1c7..193f150350e 100644 --- a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceImpl.java +++ b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceImpl.java @@ -286,21 +286,19 @@ private boolean rebalanceByTopic(final String topic, final boolean isOrder) { } case CLUSTERING: { Set mqSet = this.topicSubscribeInfoTable.get(topic); - List cidAll = this.mQClientFactory.findConsumerIdList(topic, consumerGroup); - if (null == mqSet) { + if (null == mqSet || mqSet.isEmpty()) { if (!topic.startsWith(MixAll.RETRY_GROUP_TOPIC_PREFIX)) { this.messageQueueChanged(topic, Collections.emptySet(), Collections.emptySet()); log.warn("doRebalance, {}, but the topic[{}] not exist.", consumerGroup, topic); } + break; } - if (null == cidAll) { + List cidAll = this.mQClientFactory.findConsumerIdList(topic, consumerGroup); + if (null == cidAll || cidAll.isEmpty()) { log.warn("doRebalance, {} {}, get consumer id list failed", consumerGroup, topic); - } - - if (mqSet != null && cidAll != null) { - List mqAll = new ArrayList<>(); - mqAll.addAll(mqSet); + } else { + List mqAll = new ArrayList<>(mqSet); Collections.sort(mqAll); Collections.sort(cidAll);