文章目錄
- 1.創建namesrv服務
- 拉取鏡像
- 創建namesrv資料存盤路徑
- 構建namesrv容器
- 2.創建broker節點
- 創建broker資料存盤路徑
- 創建組態檔
- 構建broker容器
- 3.創建rockermq-console服務
- 拉取鏡像
- 構建rockermq-console容器
- 需要關閉防火墻或者開放namesrv和broker埠
- 關閉防火墻
- 開放指定埠
- 訪問控制臺
1.創建namesrv服務
拉取鏡像
docker pull rocketmqinc/rocketmq
創建namesrv資料存盤路徑
mkdir -p /docker/rocketmq/data/namesrv/logs /docker/rocketmq/data/namesrv/store
構建namesrv容器
docker run -d \
--restart=always \
--name rmqnamesrv \
-p 9876:9876 \
-v /docker/rocketmq/data/namesrv/logs:/root/logs \
-v /docker/rocketmq/data/namesrv/store:/root/store \
-e "MAX_POSSIBLE_HEAP=100000000" \
rocketmqinc/rocketmq \
sh mqnamesrv
| 引數 | 說明 |
|---|---|
| -d | 以守護行程的方式啟動 |
| –restart=always | docker重啟時候鏡像自動重啟 |
| - -name rmqnamesrv | 把容器的名字設定為rmqnamesrv |
| -p 9876:9876 | 把容器內的埠9876掛載到宿主機9876上面 |
| -v /docker/rocketmq/data/namesrv/logs:/root/logs | 把容器內的/root/logs日志目錄掛載到宿主機的 /docker/rocketmq/data/namesrv/logs目錄 |
| -v /docker/rocketmq/data/namesrv/store:/root/store | 把容器內的/root/store資料存盤目錄掛載到宿主機的 /docker/rocketmq/data/namesrv目錄 |
| rmqnamesrv | 容器的名字 |
| -e “MAX_POSSIBLE_HEAP=100000000” | 設定容器的最大堆記憶體為100000000 |
| rocketmqinc/rocketmq | 使用的鏡像名稱 |
| sh mqnamesrv | 啟動namesrv服務 |
2.創建broker節點
創建broker資料存盤路徑
mkdir -p /docker/rocketmq/data/broker/logs /docker/rocketmq/data/broker/store /docker/rocketmq/conf
創建組態檔
vi /docker/rocketmq/conf/broker.conf
# 所屬集群名稱,如果節點較多可以配置多個
brokerClusterName = DefaultCluster
#broker名稱,master和slave使用相同的名稱,表明他們的主從關系
brokerName = broker-a
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示幾點做訊息洗掉動作,默認是凌晨4點
deleteWhen = 04
#在磁盤上保留訊息的時長,單位是小時
fileReservedTime = 48
#有三個值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和異步表示Master和Slave之間同步資料的機制;
brokerRole = ASYNC_MASTER
#刷盤策略,取值為:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盤和異步刷盤;SYNC_FLUSH訊息寫入磁盤后才回傳成功狀態,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH
# 設定broker節點所在服務器的ip地址
brokerIP1 = 192.168.52.136
構建broker容器
docker run -d \
--restart=always \
--name rmqbroker \
--link rmqnamesrv:namesrv \
-p 10911:10911 \
-p 10909:10909 \
-v /docker/rocketmq/data/broker/logs:/root/logs \
-v /docker/rocketmq/data/broker/store:/root/store \
-v /docker/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "MAX_POSSIBLE_HEAP=200000000" \
rocketmqinc/rocketmq \
sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
| 引數 | 說明 |
|---|---|
| -d | 以守護行程的方式啟動 |
| –restart=always | docker重啟時候鏡像自動重啟 |
| - -name rmqbroker | 把容器的名字設定為rmqbroker |
| - --link rmqnamesrv:namesrv | 和rmqnamesrv容器通信 |
| -p 10911:10911 | 把容器的非vip通道埠掛載到宿主機 |
| -p 10909:10909 | 把容器的vip通道埠掛載到宿主機 |
| -e “NAMESRV_ADDR=namesrv:9876” | 指定namesrv的地址為本機namesrv的ip地址:9876 |
| -e “MAX_POSSIBLE_HEAP=200000000” rocketmqinc/rocketmq sh mqbroker | 指定broker服務的最大堆記憶體 |
| rocketmqinc/rocketmq | 使用的鏡像名稱 |
| sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf | 指定組態檔啟動broker節點 |
3.創建rockermq-console服務
拉取鏡像
docker pull pangliang/rocketmq-console-ng
構建rockermq-console容器
docker run -d \
--restart=always \
--name rmqadmin \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.52.136:9876 \
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 9999:8080 \
pangliang/rocketmq-console-ng
| 引數 | 說明 |
|---|---|
| -d | 以守護行程的方式啟動 |
| - -restart=always | docker重啟時候鏡像自動重啟 |
| - -name rmqadmin | 把容器的名字設定為rmqbroker |
| -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.52.136:9876 | 設定namesrv服務的ip地址 |
| -Dcom.rocketmq.sendMessageWithVIPChannel=false" | 不使用vip通道發送訊息 |
| –p 9999:8080 | 把容器內的埠8080掛載到宿主機上的9999埠 |
需要關閉防火墻或者開放namesrv和broker埠
如果不設定,控制臺服務將無法訪問namesrv服務
例外資訊如下
org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to failed


關閉防火墻
systemctl stop firewalld.service
開放指定埠
firewall-cmd --permanent --zone=public --add-port=9876/tcp
firewall-cmd --permanent --zone=public --add-port=10911/tcp
# 立即生效
firewall-cmd --reload
訪問控制臺
網頁訪問http://192.168.52.136:9999/查看控制臺資訊

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/175474.html
標籤:AI
上一篇:Linux命令大全(1)
