This is an automated email from the ASF dual-hosted git repository.
vongosling pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/develop by this push:
new f12cc81 Init english version of the README
f12cc81 is described below
commit f12cc81e80ab33c2cce0fbd10e106048659419f4
Author: lizhiboo <[email protected]>
AuthorDate: Tue May 26 11:11:49 2020 +0800
Init english version of the README
Co-authored-by: 李致波 <[email protected]>
---
docs/en/README.md | 49 ++
docs/en/RocketMQ_Example.md | 15 +
docs/en/dledger/deploy_guide.md | 78 +++
docs/en/dledger/quick_start.md | 63 ++
docs/en/msg_trace/user_guide.md | 105 +++
docs/en/operation.md | 1374 +++++++++++++++++++++++++++++++++++++++
6 files changed, 1684 insertions(+)
diff --git a/docs/en/README.md b/docs/en/README.md
new file mode 100644
index 0000000..b24d240
--- /dev/null
+++ b/docs/en/README.md
@@ -0,0 +1,49 @@
+Apache RocketMQ Developer Guide
+--------
+
+##### This guide helps develpers understand and use Apache RocketMQ quickly.
+
+### 1. Concepts & Features
+
+- [Concept](Concept.md):introduce basic concepts in RocketMQ.
+
+- [Feature](Feature.md):introduce functional features of RocketMQ's
implementations.
+
+
+### 2. Architecture Design
+
+- [Architecture](architecture.md):introduce RocketMQ's deployment and
technical architecture.
+
+- [Design](design.md):introduce design concept of RocketMQ's key mechanisms,
including message storage, communication mechanisms, message filter,
loadbalance, transaction message, etc.
+
+
+### 3. Example
+
+- [Example](RocketMQ_Example.md) :introduce RocketMQ's common usage, including
basic example, sequence message example, delay message example, batch message
example, filter message example, transaction message example, etc.
+
+
+### 4. Best Practice
+- [Best Practice](best_practice.md):introduce RocketMQ's best practice,
including producer, consumer, broker, NameServer, configuration of client, and
the best parameter configuration of JVM, linux.
+
+- [Message Trace](msg_trace/user_guide.md):introduce how to use RocketMQ's
message tracing feature.
+
+- [Auth Management](acl/Operations_ACL.md):introduce how to deployment quickly
and how to use RocketMQ cluster enabling auth management feature.
+
+- [Quick Start](dledger/quick_start.md):introduce how to deploy Dledger
quickly.
+
+- [Cluster Deployment](dledger/deploy_guide.md):introduce how to deploy
Dledger in cluster.
+
+### 5. Operation and maintenance management
+- [Operation](operation.md):introduce RocketMQ's deployment modes that
including single-master mode, multi-master mode, multi-master multi-slave mode
and so on, as well as the usage of operation tool mqadmin.
+
+
+### 6. API Reference(TODO)
+
+- [DefaultMQProducer API
Reference](client/java/API_Reference_DefaultMQProducer.md)
+
+
+
+
+
+
+
diff --git a/docs/en/RocketMQ_Example.md b/docs/en/RocketMQ_Example.md
new file mode 100644
index 0000000..48011af
--- /dev/null
+++ b/docs/en/RocketMQ_Example.md
@@ -0,0 +1,15 @@
+### Examples List
+
+- [basic example](Example_Simple.md)
+
+- [sequence message example](Example_Orderly.md)
+
+- [delay message example](Example_Delay.md)
+
+- [batch message example](Example_Batch.md)
+
+- [filter message example](Example_Filter.md)
+
+- [transaction message example](Example_Transaction.md)
+
+- [openmessaging example](Example_OpenMessaging.md)
diff --git a/docs/en/dledger/deploy_guide.md b/docs/en/dledger/deploy_guide.md
new file mode 100644
index 0000000..5550949
--- /dev/null
+++ b/docs/en/dledger/deploy_guide.md
@@ -0,0 +1,78 @@
+# Dledger cluster deployment
+---
+## preface
+This document introduces how to deploy auto failover RocketMQ-on-DLedger Group。
+
+RocketMQ-on-DLedger Group is a broker group with **same name**, needs at least
3 nodes, elect a Leader by Raft algorithm automatically, the others as
Follower, replicating data between Leader and Follower for system high
available.
+RocketMQ-on-DLedger Group can failover automatically, and maintains
consistent.
+RocketMQ-on-DLedger Group can scale up horizontal, that is, can deploy any
RocketMQ-on-DLedger Groups providing services external.
+
+## 1. New cluster deployment
+
+#### 1.1 Write the configuration
+each RocketMQ-on-DLedger Group needs at least 3 machines.(assuming 3 in this
document)
+write 3 configuration files, advising refer to the directory of conf/dledger
's example configuration file.
+key configuration items:
+
+| name | meaning | example |
+| --- | --- | --- |
+| enableDLegerCommitLog | whether enable DLedger | true |
+| dLegerGroup | DLedger Raft Group's name, advising maintain consistent to
brokerName | RaftNode00 |
+| dLegerPeers | DLedger Group's nodes port infos, each node's configuration
stay consistent in the same group. |
n0-127.0.0.1:40911;n1-127.0.0.1:40912;n2-127.0.0.1:40913 |
+| dLegerSelfId | node id, must belongs to dLegerPeers; each node is unique in
the same group. | n0 |
+| sendMessageThreadPoolNums | the count of sending thread, advising set equal
to the cpu cores. | 16 |
+
+the following presents an example configuration conf/dledger/broker-n0.conf.
+
+```
+brokerClusterName = RaftCluster
+brokerName=RaftNode00
+listenPort=30911
+namesrvAddr=127.0.0.1:9876
+storePathRootDir=/tmp/rmqstore/node00
+storePathCommitLog=/tmp/rmqstore/node00/commitlog
+enableDLegerCommitLog=true
+dLegerGroup=RaftNode00
+dLegerPeers=n0-127.0.0.1:40911;n1-127.0.0.1:40912;n2-127.0.0.1:40913
+## must be unique
+dLegerSelfId=n0
+sendMessageThreadPoolNums=16
+```
+
+### 1.2 Start Broker
+
+Startup stays consistent with the old version.
+
+`nohup sh bin/mqbroker -c conf/dledger/xxx-n0.conf & `
+`nohup sh bin/mqbroker -c conf/dledger/xxx-n1.conf & `
+`nohup sh bin/mqbroker -c conf/dledger/xxx-n2.conf & `
+
+
+## 2. Upgrade old cluster
+
+If old cluster deployed in Master mode, then each Master needs to be
transformed into a RocketMQ-on-DLedger Group.
+If old cluster deployed in Master-Slave mode, then each Master-Slave group
needs to be transformed into a RocketMQ-on-DLedger Group.
+
+### 2.1 Kill old Broker
+
+execute kill command, or call `bin/mqshutdown broker`.
+
+### 2.2 Check old Commitlog
+
+Each node in RocketMQ-on-DLedger group is compatible with old Commitlog, but
Raft replicating process works on the adding message only. So, to avoid
occurring exceptions, old Commitlog must be consistent.
+If old cluster deployed in Master-Slave mode, it maybe inconsistent after
shutdown. Advising use md5sum to check at least 2 recently Commitlog file, if
occur inconsistent, maintain consistent by copy.
+
+Although RocketMQ-on-DLedger Group can deployed with 2 nodes, it lacks
failover ability(at least 3 nodes can tolerate one node fail).
+Make sure that both Master and Slave's Commitlog is consistent, then prepare 3
machines, copy old Commitlog from Master to this 3 machines(BTW, copy the
config directory).
+
+Then, go ahead to set configurations.
+
+### 2.3 Modify configuration
+
+Refer to New cluster deployment.
+
+### 2.4 Restart Broker
+
+Refer to New cluster deployment.
+
+
diff --git a/docs/en/dledger/quick_start.md b/docs/en/dledger/quick_start.md
new file mode 100644
index 0000000..f947e16
--- /dev/null
+++ b/docs/en/dledger/quick_start.md
@@ -0,0 +1,63 @@
+# Dledger Quick Deployment
+---
+### preface
+This document is mainly introduced for how to build and deploy auto failover
RocketMQ cluster based on DLedger.
+
+For detailed new cluster deployment and old cluster upgrade document, please
refer to [Deployment Guide](deploy_guide.md)。
+
+### 1. Build from source code
+Build phase contains two parts, first, build DLedger, then build RocketMQ.
+
+#### 1.1 Build DLedger
+
+`git clone https://github.com/openmessaging/openmessaging-storage-dledger.git`
+
+`cd openmessaging-storage-dledger`
+
+`mvn clean install -DskipTests`
+
+#### 1.2 Build RocketMQ
+
+`git clone https://github.com/apache/rocketmq.git`
+
+`cd rocketmq`
+
+`git checkout -b store_with_dledger origin/store_with_dledger`
+
+`mvn -Prelease-all -DskipTests clean install -U`
+
+### 2. Quick Deployment
+
+after build successful
+
+`cd distribution/target/apache-rocketmq`
+
+`sh bin/dledger/fast-try.sh start`
+
+if the above commands executed successfully, then check cluster status by
using mqadmin operation commands.
+
+`sh bin/mqadmin clusterList -n 127.0.0.1:9876`
+
+If everything goes well, the following content will appear:
+
+
+
+(BID is 0 indicate Master,the others are Follower)
+
+After startup successful, producer can produce message, and then test failover
scenario.
+
+Stop cluster fastly, execute the following command:
+
+`sh bin/dledger/fast-try.sh stop`
+
+Quick deployment, default configuration is in directory conf/dledger,default
storage path is /tmp/rmqstore.
+
+
+### 3. Failover
+
+After successful deployment, kill Leader process(as the above example, kill
process that binds port 30931), about 10 seconds elapses, use clusterList
command check cluster's status, Leader switch to another node.
+
+
+
+
+
diff --git a/docs/en/msg_trace/user_guide.md b/docs/en/msg_trace/user_guide.md
new file mode 100644
index 0000000..eb540d0
--- /dev/null
+++ b/docs/en/msg_trace/user_guide.md
@@ -0,0 +1,105 @@
+# message trace
+----
+
+## 1. Message trace data's key properties
+| Producer End| Consumer End| Broker End|
+| --- | --- | --- |
+| produce message | consume message | message's topic |
+| send message time | delivery time, delivery rounds | message store location
|
+| whether the message was sent successfully | whether message was consumed
successfully | message's key |
+| send cost-time | consume cost-time | message's tag value |
+
+## 2. Enable message trace in cluster deployment
+
+### 2.1 Broker's configuration file
+following by Broker's properties file configuration that enable message trace:
+```
+brokerClusterName=DefaultCluster
+brokerName=broker-a
+brokerId=0
+deleteWhen=04
+fileReservedTime=48
+brokerRole=ASYNC_MASTER
+flushDiskType=ASYNC_FLUSH
+storePathRootDir=/data/rocketmq/rootdir-a-m
+storePathCommitLog=/data/rocketmq/commitlog-a-m
+autoCreateSubscriptionGroup=true
+## if msg tracing is open,the flag will be true
+traceTopicEnable=true
+listenPort=10911
+brokerIP1=XX.XX.XX.XX1
+namesrvAddr=XX.XX.XX.XX:9876
+```
+
+### 2.2 Common mode
+Each Broker node in RocketMQ cluster used for storing message trace data that
client collected and sent. So, there is no requirements and limitations to the
size of Broker node in RocketMQ cluster.
+
+### 2.3 IO physical isolation mode
+For huge amounts of message trace data scenario, we can select any one Broker
node in RocketMQ cluster used for storing message trace data special, thus,
common message data's IO are isolated from message trace data's IO in physical,
not impact each other. In this mode, RocketMQ cluster must have at least two
Broker nodes, the one that defined as storing message trace data.
+
+### 2.4 Start Broker that enable message trace
+`nohup sh mqbroker -c ../conf/2m-noslave/broker-a.properties &`
+
+## 3. Save the definition of topic that with support message trace
+RocketMQ's message trace feature supports two types of storage.
+
+### 3.1 System level TraceTopic
+Be default, message trace data is stored in system level TraceTopic(topic
name: **RMQ_SYS_TRACE_TOPIC**). That topic will be created at startup of
broker(As mentioned above, set **traceTopicEnable** to **true** in Broker's
configuration).
+
+### 3.2 User defined TraceTopic
+If user don't want to store message trace data in system level TraceTopic, he
can create user defined TraceTopic used for storing message trace data(that is,
create common topic for storing message trace data). The following part will
introduce how client SDK support user defined TraceTopic.
+
+## 4. Client SDK demo with message trace feature
+For business system adapting to use RocketMQ's message trace feature easily,
in design phase, the author add a switch parameter(**enableMsgTrace**) for
enable message trace; add a custom parameter(**customizedTraceTopic**) for user
defined TraceTopic.
+
+### 4.1 Enable message trace when sending messages
+```
+ DefaultMQProducer producer = new
DefaultMQProducer("ProducerGroupName",true);
+ producer.setNamesrvAddr("XX.XX.XX.XX1");
+ producer.start();
+ try {
+ {
+ Message msg = new Message("TopicTest",
+ "TagA",
+ "OrderID188",
+ "Hello
world".getBytes(RemotingHelper.DEFAULT_CHARSET));
+ SendResult sendResult = producer.send(msg);
+ System.out.printf("%s%n", sendResult);
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+```
+
+### 4.2 Enable message trace when subscribe messages
+```
+ DefaultMQPushConsumer consumer = new
DefaultMQPushConsumer("CID_JODIE_1",true);
+ consumer.subscribe("TopicTest", "*");
+
consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
+ consumer.setConsumeTimestamp("20181109221800");
+ consumer.registerMessageListener(new MessageListenerConcurrently() {
+ @Override
+ public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt>
msgs, ConsumeConcurrentlyContext context) {
+ System.out.printf("%s Receive New Messages: %s %n",
Thread.currentThread().getName(), msgs);
+ return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
+ }
+ });
+ consumer.start();
+ System.out.printf("Consumer Started.%n");
+```
+
+### 4.3 Self-defined topic support message trace
+Adjusting instantiation of DefaultMQProducer and DefaultMQPushConsumer as
following code to support user defined TraceTopic.
+```
+ ##Topic_test11111 should be created by user, used for storing message
trace data.
+ DefaultMQProducer producer = new
DefaultMQProducer("ProducerGroupName",true,"Topic_test11111");
+ ......
+
+ DefaultMQPushConsumer consumer = new
DefaultMQPushConsumer("CID_JODIE_1",true,"Topic_test11111");
+ ......
+```
+
+
+
+
diff --git a/docs/en/operation.md b/docs/en/operation.md
new file mode 100644
index 0000000..1d41e98
--- /dev/null
+++ b/docs/en/operation.md
@@ -0,0 +1,1374 @@
+
+# Operation Management
+---
+
+### 1 Deploy cluster
+
+#### 1.1 Single Master mode
+
+This mode is risky, upon broker restart or broken down, the whole service is
unavailable. It's not recommended in production environment, it can be used for
local test.
+
+##### 1)Start NameServer
+
+```bash
+### Start Name Server
+$ nohup sh mqnamesrv &
+
+### check whether Name Server is successfully started
+$ tail -f ~/logs/rocketmqlogs/namesrv.log
+The Name Server boot success...
+```
+
+##### 2)Start Broker
+
+```bash
+### start Broker
+$ nohup sh bin/mqbroker -n localhost:9876 &
+
+### check whether Name Server is successfully started, eg: Broker's IP is
192.168.1.2, Broker's name is broker-a
+$ tail -f ~/logs/rocketmqlogs/Broker.log
+The broker[broker-a, 192.169.1.2:10911] boot success...
+```
+
+#### 1.2 Multi Master mode
+
+Cluster contains Master node only, no Slave node, eg: 2 Master nodes, 3 Master
nodes, advantages and disadvantages of this mode are shown below:
+
+- advantages:simple configuration, single Master node broke down or restart do
not impact application. Under RAID10 disk config, even if machine broken down
and cannot recover, message do not get lost because of RAID10's high
reliable(async flush to disk lost little message, sync to disk do not lost
message), this mode get highest performance.
+
+- disadvantages:during the machine's down time, messages have not be consumed
on this machine can not be subscribed before recovery. That will impacts
message's instantaneity.
+
+##### 1)Start NameServer
+
+NameServer should be started before broker. If under production environment,
we recommend start 3 NameServer nodes for high available. Startup command is
equal, as shown below:
+
+```bash
+### start Name Server
+$ nohup sh mqnamesrv &
+
+### check whether Name Server is successfully started
+$ tail -f ~/logs/rocketmqlogs/namesrv.log
+The Name Server boot success...
+```
+
+##### 2)start Broker cluster
+
+```bash
+### start the first Master on machine A, eg:NameServer's IP is :192.168.1.1
+$ nohup sh mqbroker -n 192.168.1.1:9876 -c
$ROCKETMQ_HOME/conf/2m-noslave/broker-a.properties &
+
+### start the second Master on machine B, eg:NameServer's IP is :192.168.1.1
+$ nohup sh mqbroker -n 192.168.1.1:9876 -c
$ROCKETMQ_HOME/conf/2m-noslave/broker-b.properties &
+
+...
+```
+
+The above commands only used for single NameServer. In multi NameServer
cluster, multi addresses concat by semicolon followed by -n in broker start
command.
+
+#### 1.3 Multi Master Multi Slave mode - async replication
+
+Each Master node is equipped with one Slave node, this mode has many
Master-Slave group, using async replication for HA, slaver has a lag(ms level)
behind master, advantages and disadvantages of this mode are shown below:
+
+- advantages: message lost a little, even if disk is broken; message
instantaneity do not loss; Consumer can still consume from slave when master is
down, this process is transparency to user, no human intervention is required;
Performance is almost equal to Multi Master mode.
+
+- disadvantages: message lost a little data, when Master is down and disk
broken.
+
+##### 1)Start NameServer
+
+```bash
+### start Name Server
+$ nohup sh mqnamesrv &
+
+### check whether Name Server is successfully started
+$ tail -f ~/logs/rocketmqlogs/namesrv.log
+The Name Server boot success...
+```
+
+##### 2)Start Broker cluster
+
+```bash
+### start first Master on machine A, eg: NameServer's IP is 192.168.1.1
+$ nohup sh mqbroker -n 192.168.1.1:9876 -c
$ROCKETMQ_HOME/conf/2m-2s-async/broker-a.properties &
+
+### start second Master on machine B, eg: NameServer's IP is 192.168.1.1
+$ nohup sh mqbroker -n 192.168.1.1:9876 -c
$ROCKETMQ_HOME/conf/2m-2s-async/broker-b.properties &
+
+### start first Slave on machine C, eg: NameServer's IP is 192.168.1.1
+$ nohup sh mqbroker -n 192.168.1.1:9876 -c
$ROCKETMQ_HOME/conf/2m-2s-async/broker-a-s.properties &
+
+### start second Slave on machine D, eg: NameServer's IP is 192.168.1.1
+$ nohup sh mqbroker -n 192.168.1.1:9876 -c
$ROCKETMQ_HOME/conf/2m-2s-async/broker-b-s.properties &
+```
+
+#### 1.4 Multi Master Multi Slave mode - synchronous double write
+
+Each Master node is equipped with one Slave node, this mode has many
Master-Slave group, using synchronous double write for HA, application's write
operation is successful means both master and slave write successful,
advantages and disadvantages of this mode are shown below:
+
+- advantages:both data and service have no single point failure, message has
no lantancy even if Master is down, service available and data available is
very high;
+
+- disadvantages:this mode's performance is 10% lower than async replication
mode, sending latency is a little high, in the current version, it do not have
auto Master-Slave switch when Master is down.
+
+##### 1)Start NameServer
+
+```bash
+### start Name Server
+$ nohup sh mqnamesrv &
+
+### check whether Name Server is successfully started
+$ tail -f ~/logs/rocketmqlogs/namesrv.log
+The Name Server boot success...
+```
+
+##### 2)Start Broker cluster
+
+```bash
+### start first Master on machine A, eg:NameServer's IP is 192.168.1.1
+$ nohup sh mqbroker -n 192.168.1.1:9876 -c
$ROCKETMQ_HOME/conf/2m-2s-sync/broker-a.properties &
+
+### start second Master on machine B, eg:NameServer's IP is 192.168.1.1
+$ nohup sh mqbroker -n 192.168.1.1:9876 -c
$ROCKETMQ_HOME/conf/2m-2s-sync/broker-b.properties &
+
+### start first Slave on machine C, eg: NameServer's IP is 192.168.1.1
+$ nohup sh mqbroker -n 192.168.1.1:9876 -c
$ROCKETMQ_HOME/conf/2m-2s-sync/broker-a-s.properties &
+
+### start second Slave on machine D, eg: NameServer's IP is 192.168.1.1
+$ nohup sh mqbroker -n 192.168.1.1:9876 -c
$ROCKETMQ_HOME/conf/2m-2s-sync/broker-b-s.properties &
+```
+
+The above Broker matches Slave by specifying the same BrokerName, Master's
BrokerId must be 0, Slave's BrokerId must larger than 0. Besides, a Master can
have multi Slaves that each has a distinct BrokerId. $ROCKETMQ_HOME indicates
RocketMQ's install directory, user needs to set this environment parameter.
+
+### 2 mqadmin management tool
+
+> Attentions:
+>
+> 1. execute command:`./mqadmin {command} {args}`
+> 2. almost all commands need -n indicates NameSerer address, format is ip:port
+> 3. almost all commands can get help info by -h
+> 4. if command contains both Broker address(-b) and cluster name(-c), it's
prior to use broker address. If command do not contains broker address, it will
executed on all hosts in this cluster. Support only one broker host. -b format
is ip:port, default port is 10911
+> 5. there are many commands under tools, but not all command can be used,
only commands that initialized in MQAdminStartup can be used, you can modify
this class, add or self-define command.
+> 6. because of version update, little command do not update timely, please
refer to source code directly when occur error.
+#### 2.1 Topic
+
+<table border=0 cellpadding=0 cellspacing=0 width=714>
+ <col width=177>
+ <col width=175>
+ <col width=177>
+ <col width=185>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl63 width=177
style='height:17.0pt;width:133pt'>name</td>
+ <td class=xl64 width=175 style='width:131pt'>meaning</td>
+ <td class=xl64 width=177 style='width:133pt'>command items</td>
+ <td class=xl64 width=185 style='width:139pt'>explaination</td>
+ </tr>
+ <tr height=132 style='height:99.0pt'>
+ <td rowspan=8 height=593 class=xl68 width=163 style='border-bottom:1.0pt;
+ height:444.0pt;border-top:none;width:122pt'>updateTopic</td>
+ <td rowspan=8 class=xl70 width=135 style='border-bottom:1.0pt;
+ border-top:none;width:101pt'>create or update Topic's config</td>
+ <td class=xl65 width=149 style='width:112pt'>-b</td>
+ <td class=xl66 width=159 style='width:119pt'>Broker address, means which
Broker that topic is located, only support single Broker, address format is
ip:port</td>
+ </tr>
+ <tr height=132 style='height:99.0pt'>
+ <td height=132 class=xl65 width=149 style='height:99.0pt;width:112pt'>-c</td>
+ <td class=xl66 width=159 style='width:119pt'>cluster name, whic cluster that
topic belongs to(query cluster info by clusterList)</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl65 width=149 style='height:17.0pt;width:112pt'>-h-</td>
+ <td class=xl66 width=159 style='width:119pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl65 width=149 style='height:43.0pt;width:112pt'>-n</td>
+ <td class=xl66 width=159 style='width:119pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=76 style='height:57.0pt'>
+ <td height=76 class=xl65 width=149 style='height:57.0pt;width:112pt'>-p</td>
+ <td class=xl66 width=159 style='width:119pt'>assign read write authority to
new topic(W=2|R=4|WR=6)</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl65 width=149 style='height:29.0pt;width:112pt'>-r</td>
+ <td class=xl66 width=159 style='width:119pt'>the count of queue that can be
read(default is 8)</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl65 width=149 style='height:29.0pt;width:112pt'>-w</td>
+ <td class=xl66 width=159 style='width:119pt'>the count of queue that can be
wrote(default is 8)</td>
+ </tr>
+ <tr height=95 style='height:71.0pt'>
+ <td height=95 class=xl65 width=149 style='height:71.0pt;width:112pt'>-t</td>
+ <td class=xl66 width=159 style='width:119pt'>topic name(can only use
characters ^[a-zA-Z0-9_-]+$ )</td>
+ </tr>
+ <tr height=132 style='height:99.0pt'>
+ <td rowspan=4 height=307 class=xl68 width=163 style='border-bottom:1.0pt;
+ height:230.0pt;border-top:none;width:122pt'>deleteTopic</td>
+ <td rowspan=4 class=xl70 width=135 style='border-bottom:1.0pt;
+ border-top:none;width:101pt'>delete Topic</td>
+ <td class=xl65 width=149 style='width:112pt'>-c</td>
+ <td class=xl66 width=159 style='width:119pt'>cluster name, which cluster
that topic will be deleted belongs to(query cluster info by clusterList)</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl65 width=149 style='height:17.0pt;width:112pt'>-h</td>
+ <td class=xl66 width=159 style='width:119pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl65 width=149 style='height:43.0pt;width:112pt'>-n</td>
+ <td class=xl66 width=159 style='width:119pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=95 style='height:71.0pt'>
+ <td height=95 class=xl65 width=149 style='height:71.0pt;width:112pt'>-t</td>
+ <td class=xl66 width=159 style='width:119pt'>topic name(can only use
characters ^[a-zA-Z0-9_-]+$ )</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=3 height=287 class=xl68 width=163 style='border-bottom:1.0pt;
+ height:215.0pt;border-top:none;width:122pt'>topicList</td>
+ <td rowspan=3 class=xl70 width=135 style='border-bottom:1.0pt;
+ border-top:none;width:101pt'>query Topic list info</td>
+ <td class=xl65 width=149 style='width:112pt'>-h</td>
+ <td class=xl66 width=159 style='width:119pt'>print help info</td>
+ </tr>
+ <tr height=207 style='height:155.0pt'>
+ <td height=207 class=xl65 width=149
style='height:155.0pt;width:112pt'>-c</td>
+ <td class=xl66 width=159 style='width:119pt'>return topic list only if do
not contains -c, if containis -c, it will return cluster name, topic name,
consumer group name</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl65 width=149 style='height:43.0pt;width:112pt'>-n</td>
+ <td class=xl66 width=159 style='width:119pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=3 height=103 class=xl68 width=163 style='border-bottom:1.0pt;
+ height:77.0pt;border-top:none;width:122pt'>topicRoute</td>
+ <td rowspan=3 class=xl70 width=135 style='border-bottom:1.0pt;
+ border-top:none;width:101pt'>query Topic's route info</td>
+ <td class=xl65 width=149 style='width:112pt'>-t</td>
+ <td class=xl66 width=159 style='width:119pt'>topic name</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl65 width=149 style='height:17.0pt;width:112pt'>-h</td>
+ <td class=xl66 width=159 style='width:119pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl65 width=149 style='height:43.0pt;width:112pt'>-n</td>
+ <td class=xl66 width=159 style='width:119pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=3 height=103 class=xl68 width=163 style='border-bottom:1.0pt;
+ height:77.0pt;border-top:none;width:122pt'>topicStatus</td>
+ <td rowspan=3 class=xl70 width=135 style='border-bottom:1.0pt;
+ border-top:none;width:101pt'>query Topic's offset</td>
+ <td class=xl65 width=149 style='width:112pt'>-t</td>
+ <td class=xl66 width=159 style='width:119pt'>topic name</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl65 width=149 style='height:17.0pt;width:112pt'>-h</td>
+ <td class=xl66 width=159 style='width:119pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl65 width=149 style='height:43.0pt;width:112pt'>-n</td>
+ <td class=xl66 width=159 style='width:119pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=3 height=103 class=xl68 width=163 style='border-bottom:1.0pt;
+ height:77.0pt;border-top:none;width:122pt'>topicClusterList</td>
+ <td rowspan=3 class=xl70 width=135 style='border-bottom:1.0pt;
+ border-top:none;width:101pt'>query cluster list where Topic belongs to</td>
+ <td class=xl65 width=149 style='width:112pt'>-t</td>
+ <td class=xl66 width=159 style='width:119pt'>topic name</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl65 width=149 style='height:17.0pt;width:112pt'>-h</td>
+ <td class=xl66 width=159 style='width:119pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl65 width=149 style='height:43.0pt;width:112pt'>-n</td>
+ <td class=xl66 width=159 style='width:119pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=6 height=518 class=xl68 width=163 style='border-bottom:1.0pt;
+ height:380pt;border-top:none;width:122pt'>updateTopicPerm</td>
+ <td rowspan=6 class=xl70 width=135 style='border-bottom:1.0pt;
+ border-top:none;width:101pt'>update Topic's produce and consume
authority</td>
+ <td class=xl65 width=149 style='width:112pt'>-t</td>
+ <td class=xl66 width=159 style='width:119pt'>topic name</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl65 width=149 style='height:17.0pt;width:112pt'>-h</td>
+ <td class=xl66 width=159 style='width:119pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl65 width=149 style='height:43.0pt;width:112pt'>-n</td>
+ <td class=xl66 width=159 style='width:119pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=132 style='height:99.0pt'>
+ <td height=132 class=xl65 width=149 style='height:99.0pt;width:112pt'>-b</td>
+ <td class=xl66 width=159 style='width:119pt'>Broker address which topic
belongs to, support single broker only, format is ip:port</td>
+ </tr>
+ <tr height=76 style='height:57.0pt'>
+ <td height=76 class=xl65 width=149 style='height:57.0pt;width:112pt'>-p</td>
+ <td class=xl66 width=159 style='width:119pt'>assign read and write authority
to the new topic(W=2|R=4|WR=6)</td>
+ </tr>
+ <tr height=207 style='height:155.0pt'>
+ <td height=207 class=xl65 width=149
style='height:155.0pt;width:112pt'>-c</td>
+ <td class=xl66 width=159 style='width:119pt'>cluster name, which topic
belongs to(query cluster info by clusterList), if do not have -b, execute
comman an all brokers.</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=5 height=199 class=xl68 width=163 style='border-bottom:1.0pt;
+ height:149.0pt;border-top:none;width:122pt'>updateOrderConf</td>
+ <td rowspan=5 class=xl70 width=135 style='border-bottom:1.0pt;
+ border-top:none;width:101pt'>create delete get specified namespace's kv
config from NameServer, have not enabled at present</td>
+ <td class=xl65 width=149 style='width:112pt'>-h</td>
+ <td class=xl66 width=159 style='width:119pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl65 width=149 style='height:43.0pt;width:112pt'>-n</td>
+ <td class=xl66 width=159 style='width:119pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl65 width=149 style='height:17.0pt;width:112pt'>-t</td>
+ <td class=xl66 width=159 style='width:119pt'>topic, key</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl65 width=149 style='height:29.0pt;width:112pt'>-v</td>
+ <td class=xl66 width=159 style='width:119pt'>orderConf, value</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl65 width=149 style='height:43.0pt;width:112pt'>-m</td>
+ <td class=xl66 width=159 style='width:119pt'>method, including get, put,
delete</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=4 height=198 class=xl68 width=163 style='border-bottom:1.0pt;
+ height:140pt;border-top:none;width:122pt'>allocateMQ</td>
+ <td rowspan=4 class=xl70 width=135 style='border-bottom:1.0pt;
+ border-top:none;width:101pt'>calculate consumer list rebalance result by
average rebalance algorithm</td>
+ <td class=xl65 width=149 style='width:112pt'>-t</td>
+ <td class=xl66 width=159 style='width:119pt'>topic name</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl65 width=149 style='height:17.0pt;width:112pt'>-h</td>
+ <td class=xl66 width=159 style='width:119pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl65 width=149 style='height:43.0pt;width:112pt'>-n</td>
+ <td class=xl66 width=159 style='width:119pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=95 style='height:71.0pt'>
+ <td height=95 class=xl65 width=149 style='height:71.0pt;width:112pt'>-i</td>
+ <td class=xl66 width=159 style='width:119pt'>ipList, seperate by comma,
calculate which topic queue that ips will load.</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=4 height=142 class=xl68 width=163 style='border-bottom:1.0pt
solid black;
+ height:106.0pt;border-top:1.0pt;width:122pt'>statsAll</td>
+ <td rowspan=4 class=xl70 width=135 style='border-bottom:1.0pt;
+ border-top:none;width:101pt'>print Topic's subscribe info, TPS, size of
message blocked, count of read and write at last 24h, eg.</td>
+ <td class=xl65 width=149 style='width:112pt'>-h</td>
+ <td class=xl66 width=159 style='width:119pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl65 width=149 style='height:43.0pt;width:112pt'>-n</td>
+ <td class=xl66 width=159 style='width:119pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl65 width=149 style='height:29.0pt;width:112pt'>-a</td>
+ <td class=xl66 width=159 style='width:119pt'>only print active topic or
not</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl65 width=149 style='height:17.0pt;width:112pt'>-t</td>
+ <td class=xl66 width=159 style='width:119pt'>assign topic</td>
+ </tr>
+</table>
+
+
+
+#### 2.2 Cluster
+
+<table border=0 cellpadding=0 cellspacing=0 width=714>
+ <col width=177>
+ <col width=175>
+ <col width=177>
+ <col width=185>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl63 width=177 style='height:17.0pt;width:133pt'>名称</td>
+ <td class=xl64 width=175 style='width:131pt'>meaning</td>
+ <td class=xl64 width=177 style='width:133pt'>command items</td>
+ <td class=xl64 width=185 style='width:139pt'>explaination</td>
+ </tr>
+ <tr height=207 style='height:155.0pt'>
+ <td rowspan=4 height=326 class=xl67 width=177 style='border-bottom:1.0pt;
+ height:244.0pt;border-top:none;width:133pt'><span
+ style='mso-spacerun:yes'> </span>clusterList</td>
+ <td rowspan=4 class=xl70 width=175 style='border-bottom:1.0pt;
+ border-top:none;width:131pt'>query cluster info, including cluster,
BrokerName, BrokerId, TPS, eg.</td>
+ <td class=xl65 width=177 style='width:133pt'>-m</td>
+ <td class=xl66 width=185 style='width:139pt'>print more infos(eg:
#InTotalYest, #OutTotalYest, #InTotalToday ,#OutTotalToday)</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl65 width=177 style='height:17.0pt;width:133pt'>-h</td>
+ <td class=xl66 width=185 style='width:139pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl65 width=177 style='height:43.0pt;width:133pt'>-n</td>
+ <td class=xl66 width=185 style='width:139pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl65 width=177 style='height:29.0pt;width:133pt'>-i</td>
+ <td class=xl66 width=185 style='width:139pt'>print interval, unit second</td>
+ </tr>
+ <tr height=95 style='height:71.0pt'>
+ <td rowspan=8 height=391 class=xl67 width=177 style='border-bottom:1.0pt;
+ height:292.0pt;border-top:none;width:133pt'>clusterRT</td>
+ <td rowspan=8 class=xl70 width=175 style='border-bottom:1.0pt;
+ border-top:none;width:131pt'>send message to detect each cluster's Broker
RT. Message will be sent to ${BrokerName} Topic。</td>
+ <td class=xl65 width=177 style='width:133pt'>-a</td>
+ <td class=xl66 width=185 style='width:139pt'>amount, count of detection, RT
= sum time /
+ amount</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl65 width=177 style='height:29.0pt;width:133pt'>-s</td>
+ <td class=xl66 width=185 style='width:139pt'>size of message, unit B</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl65 width=177 style='height:17.0pt;width:133pt'>-c</td>
+ <td class=xl66 width=185 style='width:139pt'>which cluster will be
detected</td>
+ </tr>
+ <tr height=76 style='height:57.0pt'>
+ <td height=76 class=xl65 width=177 style='height:57.0pt;width:133pt'>-p</td>
+ <td class=xl66 width=185 style='width:139pt'>whether print format log,
splitted by |, default is not print</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl65 width=177 style='height:17.0pt;width:133pt'>-h</td>
+ <td class=xl66 width=185 style='width:139pt'>print help info</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl65 width=177 style='height:29.0pt;width:133pt'>-m</td>
+ <td class=xl66 width=185 style='width:139pt'>which machine room it belongs
to, just for print</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl65 width=177 style='height:29.0pt;width:133pt'>-i</td>
+ <td class=xl66 width=185 style='width:139pt'>send interval, unit second</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl65 width=177 style='height:43.0pt;width:133pt'>-n</td>
+ <td class=xl66 width=185 style='width:139pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+</table>
+
+
+#### 2.3 Broker
+
+<table border=0 cellpadding=0 cellspacing=0 width=714>
+ <col width=177>
+ <col width=175>
+ <col width=177>
+ <col width=185>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl63 width=177 style='height:17.0pt;width:133pt'>名称</td>
+ <td class=xl64 width=175 style='width:131pt'>meaning</td>
+ <td class=xl64 width=177 style='width:133pt'>command items</td>
+ <td class=xl64 width=185 style='width:139pt'>explaination</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td rowspan=6 height=206 class=xl69 width=191 style='border-bottom:1.0pt;
+ height:154.0pt;border-top:none;width:143pt'>updateBrokerConfig</td>
+ <td rowspan=6 class=xl72 width=87 style='border-bottom:1.0pt;
+ border-top:none;width:65pt'>update Broker's config file, it will modify
Broker.conf</td>
+ <td class=xl67 width=87 style='width:65pt'>-b</td>
+ <td class=xl68 width=87 style='width:65pt'>Broker address, format is
ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-c</td>
+ <td class=xl68 width=87 style='width:65pt'>cluster name</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-k</td>
+ <td class=xl68 width=87 style='width:65pt'>key</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-v</td>
+ <td class=xl68 width=87 style='width:65pt'>value</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td rowspan=3 height=137 class=xl69 width=191 style='border-bottom:1.0pt;
+ height:103.0pt;border-top:none;width:143pt'>brokerStatus</td>
+ <td rowspan=3 class=xl72 width=87 style='border-bottom:1.0pt;
+ border-top:none;width:65pt'>get Broker's statistics info, running
status(including whatever you want).</td>
+ <td class=xl67 width=87 style='width:65pt'>-b</td>
+ <td class=xl68 width=87 style='width:65pt'>Broker address, fomat
isip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td rowspan=6 height=256 class=xl69 width=191 style='border-bottom:1.0pt;
+ height:192.0pt;border-top:none;width:143pt'>brokerConsumeStats</td>
+ <td rowspan=6 class=xl72 width=87 style='border-bottom:1.0pt;
+ border-top:none;width:65pt'>Broker's consumer info, including Consume
Offset, Broker Offset, Diff, Timestamp that ordered by essage Queue</td>
+ <td class=xl67 width=87 style='width:65pt'>-b</td>
+ <td class=xl68 width=87 style='width:65pt'>Broker address, fomat
isip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-t</td>
+ <td class=xl68 width=87 style='width:65pt'>request timeout time</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-l</td>
+ <td class=xl68 width=87 style='width:65pt'>diff threshold, it will print
when exceed this threshold.</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-o</td>
+ <td class=xl68 width=87 style='width:65pt'>whether is sequencial topic,
generally false</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td rowspan=2 height=114 class=xl69 width=191 style='border-bottom:1.0pt;
+ height:86.0pt;border-top:none;width:143pt'>getBrokerConfig</td>
+ <td rowspan=2 class=xl72 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>get Broker's config</td>
+ <td class=xl67 width=87 style='width:65pt'>-b</td>
+ <td class=xl68 width=87 style='width:65pt'>Broker address, fomat
isip:port</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td rowspan=3 height=137 class=xl69 width=191 style='border-bottom:1.0pt;
+ height:103.0pt;border-top:none;width:143pt'>wipeWritePerm</td>
+ <td rowspan=3 class=xl72 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>revoke broker's write authority from
NameServer.</td>
+ <td class=xl67 width=87 style='width:65pt'>-b</td>
+ <td class=xl68 width=87 style='width:65pt'>Broker address, fomat
isip:port</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td rowspan=4 height=160 class=xl69 width=191 style='border-bottom:1.0pt;
+ height:120.0pt;border-top:none;width:143pt'>cleanExpiredCQ</td>
+ <td rowspan=4 class=xl72 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>clean Broker's expired Consume Queue that maybe
generated by decrease queue count.</td>
+ <td class=xl67 width=87 style='width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-b</td>
+ <td class=xl68 width=87 style='width:65pt'>Broker address, fomat
isip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-c</td>
+ <td class=xl68 width=87 style='width:65pt'>cluster name</td>
+ </tr>
+ <tr height=88 style='mso-height-source:userset;height:66.0pt'>
+ <td rowspan=4 height=191 class=xl69 width=191 style='border-bottom:1.0pt;
+ height:143.0pt;border-top:none;width:143pt'>cleanUnusedTopic</td>
+ <td rowspan=4 class=xl72 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>clean Broker's unused Topic that deleted
mannually to release memory that Topic's Consume Queue occupied.</td>
+ <td class=xl67 width=87 style='width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-b</td>
+ <td class=xl68 width=87 style='width:65pt'>Broker address, fomat
isip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-c</td>
+ <td class=xl68 width=87 style='width:65pt'>cluster name</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td rowspan=5 height=199 class=xl69 width=191 style='border-bottom:1.0pt;
+ height:149.0pt;border-top:none;width:143pt'>sendMsgStatus</td>
+ <td rowspan=5 class=xl72 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>send message to Broker, return send status and
RT</td>
+ <td class=xl67 width=87 style='width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-b</td>
+ <td class=xl68 width=87 style='width:65pt'>BrokerName, is different from
broker address</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-s</td>
+ <td class=xl68 width=87 style='width:65pt'>message size, unit B</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-c</td>
+ <td class=xl68 width=87 style='width:65pt'>send count</td>
+ </tr>
+</table>
+
+
+#### 2.4 Message
+
+<table border=0 cellpadding=0 cellspacing=0 width=714>
+ <col width=177>
+ <col width=175>
+ <col width=177>
+ <col width=185>
+<tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl63 width=177 style='height:17.0pt;width:133pt'>名称</td>
+ <td class=xl64 width=175 style='width:131pt'>meaning</td>
+ <td class=xl64 width=177 style='width:133pt'>command items</td>
+ <td class=xl64 width=185 style='width:139pt'>explaination</td>
+ </tr>
+ <tr height=128 style='height:96.0pt'>
+ <td rowspan=3 height=208 class=xl69 width=87 style='border-bottom:1.0pt;
+ height:156.0pt;border-top:none;width:65pt'>queryMsgById</td>
+ <td rowspan=3 class=xl72 width=87 style='border-bottom:1.0pt;
+ border-top:none;width:65pt'>query message by offsetMsgId. If use opensource
console, it should use offsetMsgId. Please refer to QueryMsgByIdSubCommand for
detail.</td>
+ <td class=xl67 width=87 style='width:65pt'>-i</td>
+ <td class=xl67 width=87 style='width:65pt'>msgId</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=4 height=126 class=xl69 width=87 style='border-bottom:1.0pt;
+ height:94.0pt;border-top:none;width:65pt'>queryMsgByKey</td>
+ <td rowspan=4 class=xl72 width=87 style='border-bottom:1.0pt;
+ border-top:none;width:65pt'>query message by Message's Key</td>
+ <td class=xl67 width=87 style='width:65pt'>-k</td>
+ <td class=xl67 width=87 style='width:65pt'>msgKey</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-t</td>
+ <td class=xl68 width=87 style='width:65pt'>topic name</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=225 style='height:169.0pt'>
+ <td rowspan=6 height=390 class=xl69 width=87 style='border-bottom:1.0pt;
+ height:292.0pt;border-top:none;width:65pt'>queryMsgByOffset</td>
+ <td rowspan=6 class=xl72 width=87 style='border-bottom:1.0pt;
+ border-top:none;width:65pt'>query message by Offset</td>
+ <td class=xl67 width=87 style='width:65pt'>-b</td>
+ <td class=xl68 width=87 style='width:65pt'>Broker name(it's not broker
address, can query Broker name by clusterList).</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-i</td>
+ <td class=xl68 width=87 style='width:65pt'>query queue id</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-o</td>
+ <td class=xl68 width=87 style='width:65pt'>offset value</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-t</td>
+ <td class=xl68 width=87 style='width:65pt'>topic name</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=47>
+ <td rowspan=6 height=209 class=xl69 width=87 style='border-bottom:1.0pt;
+ height:156.0pt;border-top:none;width:65pt'>queryMsgByUniqueKey</td>
+ <td rowspan=6 class=xl72 width=87 style='border-bottom:1.0pt;
+ border-top:none;width:65pt'>query by msgId, msgId is different from
offsetMsgId, please refer to Frequently asked questions about operations for
details. Use -g and -d to let specified consumer return consume result.</td>
+ <td class=xl67 width=87 style='width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-i</td>
+ <td class=xl67 width=87 style='width:65pt'>uniqe msg id</td>
+ </tr>
+ <tr height=36 style='height:27.0pt'>
+ <td height=36 class=xl67 width=87 style='height:27.0pt;width:65pt'>-g</td>
+ <td class=xl67 width=87 style='width:65pt'>consumerGroup</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-d</td>
+ <td class=xl67 width=87 style='width:65pt'>clientId</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-t</td>
+ <td class=xl68 width=87 style='width:65pt'>topic name</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=5 height=149 class=xl69 width=87 style='border-bottom:1.0pt
+ height:111.0pt;border-top:none;width:65pt'>checkMsgSendRT</td>
+ <td rowspan=5 class=xl72 width=87 style='border-bottom:1.0pt;
+ border-top:none;width:65pt'>detect RT of sending a message to a topic,
similiar to clusterRT</td>
+ <td class=xl67 width=87 style='width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-t</td>
+ <td class=xl68 width=87 style='width:65pt'>topic name</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-a</td>
+ <td class=xl68 width=87 style='width:65pt'>detection count</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-s</td>
+ <td class=xl68 width=87 style='width:65pt'>size of the message</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=8 height=218 class=xl69 width=87 style='border-bottom:1.0pt;
+ height:162.0pt;border-top:none;width:65pt'>sendMessage</td>
+ <td rowspan=8 class=xl72 width=87 style='border-bottom:1.0pt;
+ border-top:none;width:65pt'>send a message, also can send to a specified
Message Queue.</td>
+ <td class=xl67 width=87 style='width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-t</td>
+ <td class=xl68 width=87 style='width:65pt'>topic name</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-p</td>
+ <td class=xl68 width=87 style='width:65pt'>body, message entity</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-k</td>
+ <td class=xl67 width=87 style='width:65pt'>keys</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-c</td>
+ <td class=xl67 width=87 style='width:65pt'>tags</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-b</td>
+ <td class=xl67 width=87 style='width:65pt'>BrokerName</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-i</td>
+ <td class=xl67 width=87 style='width:65pt'>queueId</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=10 height=312 class=xl69 width=87 style='border-bottom:1.0pt;
+ height:232.0pt;border-top:none;width:65pt'>consumeMessage</td>
+ <td rowspan=10 class=xl72 width=87 style='border-bottom:1.0pt;
+ border-top:none;width:65pt'>consume message. Differert consume logic depends
on offset, start & end timestamp, message queue, please refer to
ConsumeMessageCommand for details.</td>
+ <td class=xl67 width=87 style='width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-t</td>
+ <td class=xl68 width=87 style='width:65pt'>topic name</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-b</td>
+ <td class=xl67 width=87 style='width:65pt'>BrokerName</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-o</td>
+ <td class=xl68 width=87 style='width:65pt'>offset that consumer start
consume</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-i</td>
+ <td class=xl67 width=87 style='width:65pt'>queueId</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-g</td>
+ <td class=xl68 width=87 style='width:65pt'>consumer gropu</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-s</td>
+ <td class=xl68 width=87 style='width:65pt'>timestamp at start, refer to -h
to get format开</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-d</td>
+ <td class=xl68 width=87 style='width:65pt'>timestamp at the end</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-c</td>
+ <td class=xl68 width=87 style='width:65pt'>size of message that consumed</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=8 height=282 class=xl69 width=87 style='border-bottom:1.0pt;
+ height:210.0pt;border-top:none;width:65pt'>printMsg</td>
+ <td rowspan=8 class=xl72 width=87 style='border-bottom:1.0pt;
+ border-top:none;width:65pt'>consume and print messages from broker, support
a time range</td>
+ <td class=xl67 width=87 style='width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-t</td>
+ <td class=xl68 width=87 style='width:65pt'>topic name</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-c</td>
+ <td class=xl68 width=87 style='width:65pt'>charset, eg: UTF-8</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-s</td>
+ <td class=xl68 width=87 style='width:65pt'>subExpress, filter expression</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-b</td>
+ <td class=xl68 width=87 style='width:65pt'>timestap at start, refer to -h to
get format</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-e</td>
+ <td class=xl68 width=87 style='width:65pt'>timestamp at the end</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-d</td>
+ <td class=xl68 width=87 style='width:65pt'>whether print message entity or
not</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=12 height=390 class=xl69 width=87 style='border-bottom:1.0pt;
+ height:290.0pt;border-top:none;width:65pt'>printMsgByQueue</td>
+ <td rowspan=12 class=xl72 width=87 style='border-bottom:1.0pt;
+ border-top:none;width:65pt'>similar to printMsg, but it need specified
Message Queue</td>
+ <td class=xl67 width=87 style='width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-t</td>
+ <td class=xl68 width=87 style='width:65pt'>topic name</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-i</td>
+ <td class=xl67 width=87 style='width:65pt'>queueId</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-a</td>
+ <td class=xl67 width=87 style='width:65pt'>BrokerName</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-c</td>
+ <td class=xl68 width=87 style='width:65pt'>charset, eg: UTF-8</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-s</td>
+ <td class=xl68 width=87 style='width:65pt'>subExpress, filter expression</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-b</td>
+ <td class=xl68 width=87 style='width:65pt'>timestamp at start, refer to -h
to get format</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-e</td>
+ <td class=xl68 width=87 style='width:65pt'>timestamp at the end</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-p</td>
+ <td class=xl68 width=87 style='width:65pt'>whether print message or not</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-d</td>
+ <td class=xl68 width=87 style='width:65pt'>whether print message entity or
not</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-f</td>
+ <td class=xl68 width=87 style='width:65pt'>whether count and print tag or
not</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=7 height=410 class=xl69 width=87 style='border-bottom:1.0pt;
+ height:307.0pt;border-top:none;width:65pt'>resetOffsetByTime</td>
+ <td rowspan=7 class=xl72 width=87 style='border-bottom:1.0pt;
+ border-top:none;width:65pt'>reset offset by timestamp, Broker and consumer
will all be reseted</td>
+ <td class=xl67 width=87 style='width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-g</td>
+ <td class=xl68 width=87 style='width:65pt'>consumer group</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-t</td>
+ <td class=xl68 width=87 style='width:65pt'>topic name</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-s</td>
+ <td class=xl68 width=87 style='width:65pt'>reset offset corresponding to
this timestamp</td>
+ </tr>
+ <tr height=188 style='height:141.0pt'>
+ <td height=188 class=xl67 width=87 style='height:141.0pt;width:65pt'>-f</td>
+ <td class=xl68 width=87 style='width:65pt'>whether enforce to reset or not,
if set false, only can reset offset, if set true, it omit the relationship
between timestamp and consumer offset.</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-c</td>
+ <td class=xl68 width=87 style='width:65pt'>whether reset c++ sdk's offset or
not</td>
+ </tr>
+</table>
+
+
+#### 2.5 Consumer, Consumer Group
+
+<table border=0 cellpadding=0 cellspacing=0 width=714>
+ <col width=177>
+ <col width=175>
+ <col width=177>
+ <col width=185>
+<tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl63 width=177
style='height:17.0pt;width:133pt'>name</td>
+ <td class=xl64 width=175 style='width:131pt'>meaning</td>
+ <td class=xl64 width=177 style='width:133pt'>command items</td>
+ <td class=xl64 width=185 style='width:139pt'>explaination</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td rowspan=4 height=158 class=xl69 width=87 style='border-bottom:1.0pt;
+ height:110pt;border-top:none;width:65pt'>consumerProgress</td>
+ <td rowspan=4 class=xl72 width=87 style='border-bottom:1.0pt;
+ border-top:none;width:65pt'>query subscribe status, can get blocking counts
of a concrete client ip.</td>
+ <td class=xl67 width=87 style='width:65pt'>-g</td>
+ <td class=xl68 width=87 style='width:65pt'>consumer group name</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-s</td>
+ <td class=xl68 width=87 style='width:65pt'>whether print client IP or
not</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=105 style='mso-height-source:userset;height:79.0pt'>
+ <td rowspan=5 height=260 class=xl69 width=87 style='border-bottom:1.0pt;
+ height:195.0pt;border-top:none;width:65pt'>consumerStatus</td>
+ <td rowspan=5 class=xl72 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>query consumer status, including message
blocking, and consumer's jstack result(please refer to
ConsumerStatusSubCommand)</td>
+ <td class=xl67 width=87 style='width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=36 style='height:27.0pt'>
+ <td height=36 class=xl67 width=87 style='height:27.0pt;width:65pt'>-g</td>
+ <td class=xl67 width=87 style='width:65pt'>consumer group</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-i</td>
+ <td class=xl67 width=87 style='width:65pt'>clientId</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-s</td>
+ <td class=xl68 width=87 style='width:65pt'>whether execute jstack or not</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td rowspan=13 height=761 class=xl69 width=87 style='border-bottom:1.0pt
+ height:569.0pt;border-top:none;width:65pt'>updateSubGroup</td>
+ <td rowspan=13 class=xl72 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>create or update subscribe info</td>
+ <td class=xl67 width=87 style='width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-b</td>
+ <td class=xl68 width=87 style='width:65pt'>Broker address</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-c</td>
+ <td class=xl68 width=87 style='width:65pt'>cluster name</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-g</td>
+ <td class=xl68 width=87 style='width:65pt'>consumer group name</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-s</td>
+ <td class=xl68 width=87 style='width:65pt'>consumer group is allowed to
consume or not</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-m</td>
+ <td class=xl68 width=87 style='width:65pt'>start consume from minimal offset
or not</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-d</td>
+ <td class=xl68 width=87 style='width:65pt'>broadcast mode or not</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-q</td>
+ <td class=xl68 width=87 style='width:65pt'>capacity of retry queue</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-r</td>
+ <td class=xl68 width=87 style='width:65pt'>max retry count</td>
+ </tr>
+ <tr height=207 style='height:155.0pt'>
+ <td height=207 class=xl67 width=87 style='height:155.0pt;width:65pt'>-i</td>
+ <td class=xl68 width=87 style='width:65pt'>It works when slaveReadEnable
enabled, and that not consumed from slave. Suggesting that consume from slave
node by specify slave id.</td>
+ </tr>
+ <tr height=132 style='height:99.0pt'>
+ <td height=132 class=xl67 width=87 style='height:99.0pt;width:65pt'>-w</td>
+ <td class=xl68 width=87 style='width:65pt'>If broker consume from slave,
whic slave node depends on this config that configed by BrokerId, eg: 1.</td>
+ </tr>
+ <tr height=76 style='height:57.0pt'>
+ <td height=76 class=xl67 width=87 style='height:57.0pt;width:65pt'>-a</td>
+ <td class=xl68 width=87 style='width:65pt'>whether notify other consumers to
rebalance or not when the count of consumer changes</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td rowspan=5 height=165 class=xl69 width=87 style='border-bottom:1.0pt
+ height:123.0pt;border-top:none;width:65pt'>deleteSubGroup</td>
+ <td rowspan=5 class=xl72 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>delete subscribe info from Broker</td>
+ <td class=xl67 width=87 style='width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-b</td>
+ <td class=xl68 width=87 style='width:65pt'>Broker address</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-c</td>
+ <td class=xl68 width=87 style='width:65pt'>cluster name</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td height=39 class=xl67 width=87 style='height:29.0pt;width:65pt'>-g</td>
+ <td class=xl68 width=87 style='width:65pt'>consumer group name</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td rowspan=6 height=172 class=xl69 width=87 style='border-bottom:1.0pt
+ height:120pt;border-top:none;width:65pt'>cloneGroupOffset</td>
+ <td rowspan=6 class=xl72 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>use source group's offset at target group</td>
+ <td class=xl67 width=87 style='width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-s</td>
+ <td class=xl68 width=87 style='width:65pt'>source consumer group</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-d</td>
+ <td class=xl68 width=87 style='width:65pt'>target consumer group</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-t</td>
+ <td class=xl68 width=87 style='width:65pt'>topic name</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-o</td>
+ <td class=xl68 width=87 style='width:65pt'>not used at present</td>
+ </tr>
+</table>
+
+
+
+
+#### 2.6 Connection
+
+<table border=0 cellpadding=0 cellspacing=0 width=714>
+ <col width=177>
+ <col width=175>
+ <col width=177>
+ <col width=185>
+<tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl63 width=177
style='height:17.0pt;width:133pt'>name</td>
+ <td class=xl64 width=175 style='width:131pt'>meaning</td>
+ <td class=xl64 width=177 style='width:133pt'>command items</td>
+ <td class=xl64 width=185 style='width:139pt'>explaination</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td rowspan=3 height=119 class=xl69 width=87 style='border-bottom:1.0pt
+ height:89.0pt;border-top:none;width:65pt'>consumerConnec tion</td>
+ <td rowspan=3 class=xl72 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>query Consumer's connection</td>
+ <td class=xl67 width=87 style='width:65pt'>-g</td>
+ <td class=xl68 width=87 style='width:65pt'>consumer group name</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=39 style='height:29.0pt'>
+ <td rowspan=4 height=142 class=xl69 width=87 style='border-bottom:1.0pt
+ height:106.0pt;border-top:none;width:65pt'>producerConnec tion</td>
+ <td rowspan=4 class=xl72 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>query Producer's connection</td>
+ <td class=xl67 width=87 style='width:65pt'>-g</td>
+ <td class=xl68 width=87 style='width:65pt'>producer group name</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-t</td>
+ <td class=xl68 width=87 style='width:65pt'>topic name</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+</table>
+
+
+
+
+#### 2.7 NameServer
+
+<table border=0 cellpadding=0 cellspacing=0 width=714>
+ <col width=177>
+ <col width=175>
+ <col width=177>
+ <col width=185>
+<tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl63 width=177
style='height:17.0pt;width:133pt'>name</td>
+ <td class=xl64 width=175 style='width:131pt'>meaning</td>
+ <td class=xl64 width=177 style='width:133pt'>command items</td>
+ <td class=xl64 width=185 style='width:139pt'>explaination</td>
+ </tr>
+ <tr height=21 style='height:16.0pt'>
+ <td rowspan=5 height=143 class=xl69 width=87 style='border-bottom:1.0pt
+ height:100pt;border-top:none;width:65pt'>updateKvConfig</td>
+ <td rowspan=5 class=xl72 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>update NameServer's kv config, not used at
present</td>
+ <td class=xl75 width=87 style='width:65pt'>-s</td>
+ <td class=xl76 width=87 style='width:65pt'>namespace</td>
+ </tr>
+ <tr height=21 style='height:16.0pt'>
+ <td height=21 class=xl75 width=87 style='height:16.0pt;width:65pt'>-k</td>
+ <td class=xl75 width=87 style='width:65pt'>key</td>
+ </tr>
+ <tr height=21 style='height:16.0pt'>
+ <td height=21 class=xl75 width=87 style='height:16.0pt;width:65pt'>-v</td>
+ <td class=xl75 width=87 style='width:65pt'>value</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td rowspan=4 height=126 class=xl69 width=87 style='border-bottom:1.0pt
+ height:94.0pt;border-top:none;width:65pt'>deleteKvConfig</td>
+ <td rowspan=4 class=xl72 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>delete NameServer's kv config</td>
+ <td class=xl67 width=87 style='width:65pt'>-s</td>
+ <td class=xl68 width=87 style='width:65pt'>namespace</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-k</td>
+ <td class=xl67 width=87 style='width:65pt'>key</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td height=57 class=xl67 width=87 style='height:43.0pt;width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td rowspan=2 height=80 class=xl69 width=87 style='border-bottom:1.0pt
+ height:60.0pt;border-top:none;width:65pt'>getNamesrvConfig</td>
+ <td rowspan=2 class=xl72 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>get NameServer's config</td>
+ <td class=xl67 width=87 style='width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td rowspan=4 height=126 class=xl69 width=87 style='border-bottom:1.0pt
+ height:94.0pt;border-top:none;width:65pt'>updateNamesrvConfig</td>
+ <td rowspan=4 class=xl72 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>modify NameServer's config</td>
+ <td class=xl67 width=87 style='width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-k</td>
+ <td class=xl67 width=87 style='width:65pt'>key</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-v</td>
+ <td class=xl67 width=87 style='width:65pt'>value</td>
+ </tr>
+</table>
+
+
+
+
+#### 2.8 Other
+
+<table border=0 cellpadding=0 cellspacing=0 width=714>
+ <col width=177>
+ <col width=175>
+ <col width=177>
+ <col width=185>
+<tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl63 width=177
style='height:17.0pt;width:133pt'>name</td>
+ <td class=xl64 width=175 style='width:131pt'>meaning</td>
+ <td class=xl64 width=177 style='width:133pt'>command items</td>
+ <td class=xl64 width=185 style='width:139pt'>explaination</td>
+ </tr>
+ <tr height=57 style='height:43.0pt'>
+ <td rowspan=2 height=80 class=xl69 width=87 style='border-bottom:1.0pt
+ height:60.0pt;border-top:none;width:65pt'>startMonitoring</td>
+ <td rowspan=2 class=xl71 width=87 style='border-bottom:1.0pt
+ border-top:none;width:65pt'>Start the monitoring process, monitor message
deletion and the number of retried messages in the queue</td>
+ <td class=xl67 width=87 style='width:65pt'>-n</td>
+ <td class=xl68 width=87 style='width:65pt'>NameServer Service address,
format is ip:port</td>
+ </tr>
+ <tr height=23 style='height:17.0pt'>
+ <td height=23 class=xl67 width=87 style='height:17.0pt;width:65pt'>-h</td>
+ <td class=xl68 width=87 style='width:65pt'>print help info</td>
+ </tr>
+</table>
+
+
+### 3 Frequently asked questions about operations
+
+#### 3.1 RocketMQ's mqadmin command error
+
+> question description:execute mqadmin occur below exception after deploy
RocketMQ cluster.
+>
+> ```java
+> org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to
<null> failed
+> ```
+
+Solution: execute command `export NAMESRV_ADDR=ip:9876` (ip is NameServer's ip
address), then execute mqadmin commands.
+
+#### 3.2 RocketMQ consumer cannot consume, because of different version of
producer and consumer.
+
+> question description: one producer produce message, consumer A can consume,
consume B cannot consume, RocketMQ console print:
+>
+> ```java
+> Not found the consumer group consume stats, because return offset table is
empty, maybe the consumer not consume any message。
+> ```
+
+Solution: make sure that producer and consumer has the same version of
rocketmq-client.
+
+#### 3.3 Consumer cannot consume oldest message, when a new consumer group is
added.
+
+> question description: when a new consumer group start, it consumes from
current offset, do not fetch oldest message.
+
+Solution: rocketmq's default policy is consume from latest, that is skip
oldest message. If you want consume oldest message, you need to set
`org.apache.rocketmq.client.consumer.DefaultMQPushConsumer#setConsumeFromWhere`.
The following is three common configurations:
+
+- default configuration, a new consumer group consume from latest position at
first startup, then consume from last time's offset at next startup, that is
skip oldest message;
+
+```java
+consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET);
+```
+
+- a new consumer group consume from oldest postion at first startup, then
consume from last time's offset at next startup, that is consume the unexpired
message;
+
+```java
+consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
+```
+
+- a new consumer group consume from specified timestamp at first startup, then
consume from last time's offset at next startup, cooperate with
consumer.setConsumeTimestamp(), default is half an hour before;
+
+```java
+consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_TIMESTAMP);
+```
+
+#### 3.4 How to enable consume from Slave
+
+In some cases, consumer need reset offset to a day or two before, if Master
Broker has limited memory, it's CommitLog will have a high IO load, then it
will impact other message's read and write that on this broker. When
`slaveReadEnable=true` is set, and consumer's offset exceeds
`accessMessageInMemoryMaxRatio=40%`, Master Broker will recommend consumer
consume from Slave Broker to lower Master Broker IO.
+
+#### 3.5 Performance tuning
+
+A spin lock is recommended for asynchronous disk flush, a reentrant lock is
recommended for synchronous disk flush, configuration item is
`useReentrantLockWhenPutMessage`, default is false; Enable
`TransientStorePoolEnable` is recommended when use asynchronous disk flush;
Recommend to close `transferMsgByHeap` to improve fetch efficiency; Set a
little larger `sendMessageThreadPoolNums`, when use synchronous disk flush.
+
+#### 3.6 The meaning and difference between msgId and offsetMsgId in RocketMQ
+
+You will usually see the following log print message after sending message by
using RocketMQ sdk.
+
+```java
+SendResult [sendStatus=SEND_OK, msgId=0A42333A0DC818B4AAC246C290FD0000,
offsetMsgId=0A42333A00002A9F000000000134F1F5, messageQueue=MessageQueue
[topic=topicTest1, BrokerName=mac.local, queueId=3], queueOffset=4]
+```
+
+- msgId, is generated by producer sdk. In particular, call method
`MessageClientIDSetter.createUniqIDBuffer()` to generate unique Id;
+- offsetMsgId, offsetMsgId is generated by Broker server(format is "Ip Address
+ port + CommitLog offset"). offsetMsgId is messageId that is RocketMQ
console's input.