簡介
- RocketMQ-Console是RocketMQ項目的擴展插件,是一個圖形化管理控制台,提供Broker集群狀態查看,Topic管理,Producer、Consumer狀態展示,消息查詢等常用功能,這個功能在安裝好RocketMQ后需要額外單獨安裝、運行。
- 命令行管理工具(CLI Admin Tool)對RocketMQ集群的管理提供了更多精細化的管理命令,命令行的方式對操作人員的要求稍高一些,當然,掌握了使用方法,就會簡單高效很多。命令行管理工具無需額外安裝,已經包含在${RocketMQ_HOME}/bin文件夾下面。
RocketMQ-Console
- 進入rocketmq-externals項目GitHub地址,如下圖,可看到RocketMQ項目的諸多擴展項目,其中就包含我們需要下載的rocketmq-console。
- 使用git命令下載項目源碼,由於我們僅需要rocketmq-console,故下載此項目對應分支即可。
$ git clone -b release-rocketmq-console-1.0.0 https://github.com/apache/rocketmq-externals.git
- 進入項目文件夾並修改配置文件(中文注釋是我添加,為方便解釋,請刪除,不然打包報錯)。
$ cd rocketmq-externals/rocketmq-console/ $ vi src/main/resources/application.properties #管理后台訪問上下文路徑,默認為空,如果填寫,一定要前面加“/”,后面不要加,否則啟動報錯 server.contextPath=/rocketmq #訪問端口 server.port=8080 #spring.application.index=true spring.application.name=rocketmq-console spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true spring.http.encoding.force=true #logback配置文件路徑 logging.config=classpath:logback.xml #if this value is empty,use env value rocketmq.config.namesrvAddr NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876 #Name Server地址,修改成你自己的服務地址 rocketmq.config.namesrvAddr=10.0.74.198:9876;10.0.74.199:9876 #if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true rocketmq.config.isVIPChannel= #rocketmq-console's data path:dashboard/monitor rocketmq.config.dataPath=/tmp/rocketmq-console/data #set it false if you don't want use dashboard.default true rocketmq.config.enableDashBoardCollect=true
Name Server地址默認為空,注釋說可以在啟動項目后在后台配置,經測試,后台配置切換失敗,有報錯,所以打包前需修改配置文件明確給出Name Server地址,或者啟動服務的時候給出rocketmq.config.namesrvAddr參數值。
- 將項目打成jar包,並運行jar文件。
$ mvn clean package -Dmaven.test.skip=true $ java -jar target/rocketmq-console-ng-1.0.0.jar #如果配置文件沒有填寫Name Server $ java -jar target/rocketmq-console-ng-1.0.0.jar --rocketmq.config.namesrvAddr='10.0.74.198:9876;10.0.74.199:9876'
- 啟動成功后,訪問地址http://localhost:8080/rocketmq, 即可進入管理后台操作。
命令行管理工具
上面已經講過命令行管理工具已經包含在RocketMQ項目中,我們進入項目下的bin文件夾,並執行命令bash mqadmin
,
$ bash mqadmin The most commonly used mqadmin commands are: updateTopic Update or create topic deleteTopic Delete topic from broker and NameServer. updateSubGroup Update or create subscription group deleteSubGroup Delete subscription group from broker. updateBrokerConfig Update broker's config updateTopicPerm Update topic perm topicRoute Examine topic route info topicStatus Examine topic Status info topicClusterList get cluster info for topic brokerStatus Fetch broker runtime status data queryMsgById Query Message by Id queryMsgByKey Query Message by Key queryMsgByUniqueKey Query Message by Unique key queryMsgByOffset Query Message by offset queryMsgByUniqueKey Query Message by Unique key printMsg Print Message Detail printMsgByQueue Print Message Detail sendMsgStatus send msg to broker. brokerConsumeStats Fetch broker consume stats data producerConnection Query producer's socket connection and client version consumerConnection Query consumer's socket connection, client version and subscription consumerProgress Query consumers's progress, speed consumerStatus Query consumer's internal data structure cloneGroupOffset clone offset from other group. clusterList List all of clusters topicList Fetch all topic list from name server updateKvConfig Create or update KV config. deleteKvConfig Delete KV config. wipeWritePerm Wipe write perm of broker in all name server resetOffsetByTime Reset consumer offset by timestamp(without client restart). updateOrderConf Create or update or delete order conf cleanExpiredCQ Clean expired ConsumeQueue on broker. cleanUnusedTopic Clean unused topic on broker. startMonitoring Start Monitoring statsAll Topic and Consumer tps stats allocateMQ Allocate MQ checkMsgSendRT check message send response time clusterRT List All clusters Message Send RT getNamesrvConfig Get configs of name server. updateNamesrvConfig Update configs of name server. getBrokerConfig Get broker config by cluster or special broker! queryCq Query cq command.
上面清單中左邊為命令名稱,右邊為命令含義的解釋,可以看到,大部分我們常用的功能已包含其中,具體如何使用這些命令,可以通過執行bash mqadmin help <command>
來了解細節,我們以常用命令updateTopic
為例,執行bash mqadmin help updateTopic
,打印如下信息:
可以看到,每一個參數項都有解釋,理解起來也不困難,現在我們新建一個topic,指定名稱為TopicTest,
$ bash mqadmin updateTopic -n '10.0.74.198:9876;10.0.74.199:9876' -c hq-mq-cluster -t TestTopic create topic to 10.0.74.199:10911 success. create topic to 10.0.74.198:10911 success. TopicConfig [topicName=TestTopic, readQueueNums=8, writeQueueNums=8, perm=RW-, topicFilterType=SINGLE_TAG, topicSysFlag=0, order=false]
創建的topic的默認配置也打印出來了,利用topicList
命令查看topic清單,
$ bash mqadmin topicList -n '10.0.74.198:9876;10.0.74.199:9876' TestTopic BenchmarkTest OFFSET_MOVED_EVENT SELF_TEST_TOPIC ...
可以看見,剛才新建的TopicTest以及一些系統默認的topic。如果想學習了解這些命令的源碼實現可以點擊查看這里。
RocketMQ的管理工具就講到這里,更多技巧及原理還有待深究。。。