[ISSUE #9174] Add a collection of predefined Groups and common checking methods in the MixAll (#9175)

Signed-off-by: ltamber <ltamber12@gmail.com>
This commit is contained in:
ltamber
2025-07-19 18:17:55 +08:00
committed by RongtongJin
parent 1a114e77f0
commit 3080771fe0
2 changed files with 23 additions and 19 deletions
@@ -44,6 +44,7 @@ import java.util.TreeMap;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Predicate;
import com.google.common.collect.ImmutableSet;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.common.annotation.ImportantField;
import org.apache.rocketmq.common.constant.LoggerName;
@@ -120,6 +121,23 @@ public class MixAll {
private static final String OS = System.getProperty("os.name").toLowerCase();
private static final Set<String> PREDEFINE_GROUP_SET = ImmutableSet.of(
DEFAULT_CONSUMER_GROUP,
DEFAULT_PRODUCER_GROUP,
TOOLS_CONSUMER_GROUP,
SCHEDULE_CONSUMER_GROUP,
FILTERSRV_CONSUMER_GROUP,
MONITOR_CONSUMER_GROUP,
CLIENT_INNER_PRODUCER_GROUP,
SELF_TEST_PRODUCER_GROUP,
SELF_TEST_CONSUMER_GROUP,
ONS_HTTP_PROXY_GROUP,
CID_ONSAPI_PERMISSION_GROUP,
CID_ONSAPI_OWNER_GROUP,
CID_ONSAPI_PULL_GROUP,
CID_SYS_RMQ_TRANS
);
public static boolean isWindows() {
return OS.contains("win");
}
@@ -160,6 +178,10 @@ public class MixAll {
return consumerGroup.startsWith(CID_RMQ_SYS_PREFIX);
}
public static boolean isPredefinedGroup(final String consumerGroup) {
return PREDEFINE_GROUP_SET.contains(consumerGroup);
}
public static String getDLQTopic(final String consumerGroup) {
return DLQ_GROUP_TOPIC_PREFIX + consumerGroup;
}
@@ -128,24 +128,6 @@ import org.apache.rocketmq.tools.command.CommandUtil;
public class DefaultMQAdminExtImpl implements MQAdminExt, MQAdminExtInner {
private static final String SOCKS_PROXY_JSON = "socksProxyJson";
private static final Set<String> SYSTEM_GROUP_SET = new HashSet<>();
static {
SYSTEM_GROUP_SET.add(MixAll.DEFAULT_CONSUMER_GROUP);
SYSTEM_GROUP_SET.add(MixAll.DEFAULT_PRODUCER_GROUP);
SYSTEM_GROUP_SET.add(MixAll.TOOLS_CONSUMER_GROUP);
SYSTEM_GROUP_SET.add(MixAll.SCHEDULE_CONSUMER_GROUP);
SYSTEM_GROUP_SET.add(MixAll.FILTERSRV_CONSUMER_GROUP);
SYSTEM_GROUP_SET.add(MixAll.MONITOR_CONSUMER_GROUP);
SYSTEM_GROUP_SET.add(MixAll.CLIENT_INNER_PRODUCER_GROUP);
SYSTEM_GROUP_SET.add(MixAll.SELF_TEST_PRODUCER_GROUP);
SYSTEM_GROUP_SET.add(MixAll.SELF_TEST_CONSUMER_GROUP);
SYSTEM_GROUP_SET.add(MixAll.ONS_HTTP_PROXY_GROUP);
SYSTEM_GROUP_SET.add(MixAll.CID_ONSAPI_PERMISSION_GROUP);
SYSTEM_GROUP_SET.add(MixAll.CID_ONSAPI_OWNER_GROUP);
SYSTEM_GROUP_SET.add(MixAll.CID_ONSAPI_PULL_GROUP);
SYSTEM_GROUP_SET.add(MixAll.CID_SYS_RMQ_TRANS);
}
private final Logger logger = LoggerFactory.getLogger(DefaultMQAdminExtImpl.class);
private final DefaultMQAdminExt defaultMQAdminExt;
@@ -1698,7 +1680,7 @@ public class DefaultMQAdminExtImpl implements MQAdminExt, MQAdminExtInner {
Iterator<Entry<String, SubscriptionGroupConfig>> iterator = subscriptionGroupWrapper.getSubscriptionGroupTable().entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, SubscriptionGroupConfig> configEntry = iterator.next();
if (MixAll.isSysConsumerGroup(configEntry.getKey()) || SYSTEM_GROUP_SET.contains(configEntry.getKey())) {
if (MixAll.isSysConsumerGroup(configEntry.getKey()) || MixAll.isPredefinedGroup(configEntry.getKey())) {
iterator.remove();
}
}