rocketMQ安裝&常用命令

《RocketMQ實戰與原理解析》學習筆記

單機版

rocketMQ 安裝&命令

下載安裝

> wget http://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.4.0/rocketmq-all-4.4.0-source-release.zip
> unzip rocketmq-all-4.4.0-source-release.zip
> mvn -Prelease-all -DskipTests clean install -U
> cd distribution/target/apache-rocketmq

啓動Name Server

 > nohup sh bin/mqnamesrv &
 > tail -f ~/logs/rocketmqlogs/namesrv.log
 The Name Server boot success...

啓動Broker

  > nohup sh bin/mqbroker -n localhost:9876 &
  > tail -f ~/logs/rocketmqlogs/broker.log 
  The broker[%s, 172.30.30.233:10911] boot success...

發送/接收消息(命令行)

### 生產消息
> export NAMESRV_ADDR=localhost:9876
> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

接收消息(命令行)

> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

關閉服務命令

> sh bin/mqshutdown broker

> sh bin/mqshutdown namesrv

生產環境(集羣)

master.conf

### broker-b-master.conf
namesrvAddr=s157:9876;s158:9876

brokerClusterName = DefaultCluster

### brokerName要注意不同
brokerName = broker-b

### 一個 Master Barker 可以有多個 Slave, 0 表示 Master ,大於 0 表示不同Slave 的 ID 。
brokerId = 0

### 與 fileReservedTim巳 參數呼應,表明在幾點做消息刪除動作,默認值 04 表示凌晨 4 點 。
deleteWhen = 04

### 在磁盤上保存消息的時長,單位是小時,自動刪除超時的消息 。
fileReservedTime = 48

### master角色分爲ASYNC_MASTER,SYNC_MASTER
### 關鍵詞 SYNC 和 ASYNC 表示 Master 和 Slave 之間同步消息的機制, 
### SYNC 的意思是當 Slave 和 Master 消息同步完成後,再返回發送成功的狀態 。
brokerRole = ASYNC_MASTER

### flushDiskType 表示刷 盤策略,分爲 SYNC_FLUSH 和 ASYNC_FLUSH 兩種,分別代表同步刷盤和異步刷盤 。 
### 同步刷盤情況下,消息真正寫人磁盤後再返回成功狀態;
### 異步刷盤情況下,消息寫人 page_cache 後就返回成功狀態 。
flushDiskType = ASYNC_FLUSH

listenPort=10911
storePathRootDir=/home/rocket/store-b-master

### 不配置,會找到docker的地址
### 當前broker監聽的IP
brokerIP1=s158

### 存在broker主從時,在broker主節點上配置了brokerIP2的話,broker從節點會連接主節點配置的brokerIP2來同步。
brokerIP2=s158

broker-slave.conf

### broker-b-slave.conf
namesrvAddr=s157:9876;s158:9876

brokerClusterName = DefaultCluster
brokerName = broker-b
brokerId = 1
deleteWhen = 04
fileReservedTime = 48
brokerRole = SLAVE
flushDiskType = ASYNC_FLUSH

listenPort=11011
storePathRootDir=/home/rocket/store-b-slave

指定conf文件,啓動broker

nohup sh . /bin/mqbroker -c config_file &


管理命令

topic

創建/修改Topic
在這裏插入圖片描述

:> sh bin/mqadmin updateTopic -n localhost:9876 -b localhost:10911 -t topic1

在這裏插入圖片描述

刪除 Topic
在這裏插入圖片描述
:sh bin/mqadmin deleteTopic -c DefaultCluster -n localhost:9876 -t topic1
在這裏插入圖片描述

更新 Topic 的讀寫權限
在這裏插入圖片描述

查詢 Topic 的路由信息
Topic的路由信息指的是某個Topic所在的Broker相關信息,
客戶端可以通過NameServer來獲取這些信息,本命令一般在調試的時候使用,指令是TopicRoute
在這裏插入圖片描述
:sh bin/mqadmin topicRoute -n localhost:9876 -t topic1
在這裏插入圖片描述
查看 Topic 列表信息
在這裏插入圖片描述
:sh bin/mqadmin topicList -n localhost:9876
在這裏插入圖片描述
查看 Topic 統計信息
在使用 RocketMQ 的時候,經常需要查看某個 Top ic 的狀態,看看消息的
數量,有多少未處理等,此時可以通過指令 topicStats來查詢
在這裏插入圖片描述
sh bin/mqadmin topicStatus -n localhost:9876 -t topic1
在這裏插入圖片描述

訂閱組

創建/修改訂閱組
訂閱組可以被自動創建,使用這個命令一般是用來修改訂閱組

在這裏插入圖片描述

刪除訂閱組
在這裏插入圖片描述

更新 Broker 配置

Broker有很多的配置信息,在Broker啓動時,可以通過配置文件來指定配置信息。有些配置信息支持在Broker運行的時候動態更改,更改指令是updateBrokerConfig
在這裏插入圖片描述

消息相關

根據時間查詢消息
一條消息被髮送到RocketMQ後,默認會帶上發送的時間戳,所以我們可以根據估計的時間來查詢消息,指令是printMsg
在這裏插入圖片描述
sh bin/mqadmin printMsg -n localhost:9876 -t topic1
在這裏插入圖片描述
根據消息 ID 查詢消息
根據消息ID可以精確定位到某條消息,但是消息ID需要通過其他方式來獲取,
比如可以先用時間來查詢出一些消息,然後定位到要找的具體某個消息,指令是queryMsgByld
在這裏插入圖片描述
:sh bin/mqadmin queryMsgById -n localhost:9876 -i C0A8819D00002A9F000000000000421E
在這裏插入圖片描述

根據路徑查看內容:
在這裏插入圖片描述

集羣狀態

查看集羣消息
指令clusterList用來列出集羣的狀態,看看有哪些Broker在提供服務
在這裏插入圖片描述
:sh bin/mqadmin clusterList -n localhost:9876
在這裏插入圖片描述

界面化工具

rocketmq-console

#### 下載源碼
https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console

### 打包部署
> mvn clean package -Dmaven.test.skip=true
> nohup java -jar target/rocketmq-console-ng-1.0.1.jar
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章