Skip to content

Commit

Permalink
[ISSUE #3148]Support metadata export
Browse files Browse the repository at this point in the history
  • Loading branch information
panzhi33 committed Jul 16, 2021
1 parent a729957 commit bc6b433
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,18 @@
*/
package org.apache.rocketmq.tools.command.consumer;

import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.ConcurrentMap;

import com.alibaba.fastjson.JSON;

import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.protocol.body.SubscriptionGroupWrapper;
import org.apache.rocketmq.common.subscription.SubscriptionGroupConfig;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.tools.admin.DefaultMQAdminExt;
import org.apache.rocketmq.tools.command.SubCommand;
Expand All @@ -41,7 +46,7 @@ public String commandDesc() {

@Override
public Options buildCommandlineOptions(Options options) {
Option opt = new Option("b", "brokerAddr", true, "export subscription.json to which broker");
Option opt = new Option("b", "brokerAddr", true, "choose a broker to export subscription.json");
opt.setRequired(true);
options.addOption(opt);

Expand All @@ -66,6 +71,15 @@ public void execute(CommandLine commandLine, Options options, RPCHook rpcHook)

SubscriptionGroupWrapper subscriptionGroupWrapper = defaultMQAdminExt.getAllSubscriptionGroup(
brokerAddr, 5000);
ConcurrentMap<String, SubscriptionGroupConfig> configMap = subscriptionGroupWrapper
.getSubscriptionGroupTable();
Iterator<Map.Entry<String, SubscriptionGroupConfig>> iterator = configMap.entrySet().iterator();
while (iterator.hasNext()) {
if (MixAll.isSysConsumerGroup(iterator.next().getKey())) {
iterator.remove();
}
}

String subscriptionJsonString = JSON.toJSONString(subscriptionGroupWrapper, true);

String fileName = filePath + "/subscription.json";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public String commandDesc() {

@Override
public Options buildCommandlineOptions(Options options) {
Option opt = new Option("b", "brokerAddr", true, "export topic.json or subscription.json to which broker");
Option opt = new Option("b", "brokerAddr", true, "choose a broker to export topic.json");
opt.setRequired(true);
options.addOption(opt);

Expand Down Expand Up @@ -77,7 +77,9 @@ public void execute(CommandLine commandLine, Options options, RPCHook rpcHook)
ConcurrentMap<String, TopicConfig> topicConfigMap = topicConfigSerializeWrapper.getTopicConfigTable();
Iterator<Entry<String, TopicConfig>> iterator = topicConfigMap.entrySet().iterator();
while (iterator.hasNext()) {
if (TopicValidator.isSystemTopic(iterator.next().getKey())) {
if (TopicValidator.isSystemTopic(iterator.next().getKey()) || iterator.next().getKey().startsWith(
MixAll.RETRY_GROUP_TOPIC_PREFIX) || iterator.next().getKey().startsWith(
MixAll.DLQ_GROUP_TOPIC_PREFIX)) {
iterator.remove();
}
}
Expand Down

0 comments on commit bc6b433

Please sign in to comment.