1.創(chuàng)建namesrv服務(wù)
拉取鏡像
docker pull rocketmqinc/rocketmq
創(chuàng)建namesrv數(shù)據(jù)存儲(chǔ)路徑
mkdir -p /docker/rocketmq/data/namesrv/logs /docker/rocketmq/data/namesrv/store
構(gòu)建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
參數(shù) | 說明 |
---|---|
-d | 以守護(hù)進(jìn)程的方式啟動(dòng) |
- -restart=always | docker重啟時(shí)候容器自動(dòng)重啟 |
- -name rmqnamesrv | 把容器的名字設(shè)置為rmqnamesrv |
-p 9876:9876 | 把容器內(nèi)的端口9876掛載到宿主機(jī)9876上面 |
-v /docker/rocketmq/data/namesrv/logs:/root/logs | 把容器內(nèi)的/root/logs日志目錄掛載到宿主機(jī)的 /docker/rocketmq/data/namesrv/logs目錄 |
-v /docker/rocketmq/data/namesrv/store:/root/store | 把容器內(nèi)的/root/store數(shù)據(jù)存儲(chǔ)目錄掛載到宿主機(jī)的 /docker/rocketmq/data/namesrv目錄 |
rmqnamesrv | 容器的名字 |
-e “MAX_POSSIBLE_HEAP=100000000” | 設(shè)置容器的最大堆內(nèi)存為100000000 |
rocketmqinc/rocketmq | 使用的鏡像名稱 |
sh mqnamesrv | 啟動(dòng)namesrv服務(wù) |
2.創(chuàng)建broker節(jié)點(diǎn)
創(chuàng)建broker數(shù)據(jù)存儲(chǔ)路徑
mkdir -p /docker/rocketmq/data/broker/logs /docker/rocketmq/data/broker/store /docker/rocketmq/conf
創(chuàng)建配置文件
vi /docker/rocketmq/conf/broker.conf
# 所屬集群名稱,如果節(jié)點(diǎn)較多可以配置多個(gè)
brokerClusterName = DefaultCluster
#broker名稱,master和slave使用相同的名稱矩距,表明他們的主從關(guān)系
brokerName = broker-a
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示幾點(diǎn)做消息刪除動(dòng)作但汞,默認(rèn)是凌晨4點(diǎn)
deleteWhen = 04
#在磁盤上保留消息的時(shí)長壤圃,單位是小時(shí)
fileReservedTime = 48
#有三個(gè)值:SYNC_MASTER捌袜,ASYNC_MASTER办陷,SLAVE貌夕;同步和異步表示Master和Slave之間同步數(shù)據(jù)的機(jī)制;
brokerRole = ASYNC_MASTER
#刷盤策略民镜,取值為:ASYNC_FLUSH啡专,SYNC_FLUSH表示同步刷盤和異步刷盤;SYNC_FLUSH消息寫入磁盤后才返回成功狀態(tài)制圈,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH
# 設(shè)置broker節(jié)點(diǎn)所在服務(wù)器的ip地址
brokerIP1 = 192.168.52.136#這里要設(shè)置自己服務(wù)器的ip
構(gòu)建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
參數(shù) | 說明 |
---|---|
-d | 以守護(hù)進(jìn)程的方式啟動(dòng) |
–restart=always | docker重啟時(shí)候鏡像自動(dòng)重啟 |
- -name rmqbroker | 把容器的名字設(shè)置為rmqbroker |
- --link rmqnamesrv:namesrv | 和rmqnamesrv容器通信 |
-p 10911:10911 | 把容器的非vip通道端口掛載到宿主機(jī) |
-p 10909:10909 | 把容器的vip通道端口掛載到宿主機(jī) |
-e “NAMESRV_ADDR=namesrv:9876” | 指定namesrv的地址為本機(jī)namesrv的ip地址:9876 |
-e “MAX_POSSIBLE_HEAP=200000000” rocketmqinc/rocketmq sh mqbroker | 指定broker服務(wù)的最大堆內(nèi)存 |
rocketmqinc/rocketmq | 使用的鏡像名稱 |
sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf | 指定配置文件啟動(dòng)broker節(jié)點(diǎn) |
3.創(chuàng)建rockermq-console服務(wù)
拉取鏡像
docker pull pangliang/rocketmq-console-ng
構(gòu)建rockermq-console容器
docker run -d \
--restart=always \
--name rmqadmin \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.52.136:9876 \ #這里要設(shè)置為自己的ip喲
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 9999:8080 \
pangliang/rocketmq-console-ng
參數(shù) | 說明 |
---|---|
-d | 以守護(hù)進(jìn)程的方式啟動(dòng) |
- -restart=always | docker重啟時(shí)候鏡像自動(dòng)重啟 |
- -name rmqadmin | 把容器的名字設(shè)置為rmqadmin |
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.52.136:9876 | 設(shè)置namesrv服務(wù)的ip地址 #這里要設(shè)置為自己的ip喲 |
-Dcom.rocketmq.sendMessageWithVIPChannel=false" | 不使用vip通道發(fā)送消息 |
–p 9999:8080 | 把容器內(nèi)的端口8080掛載到宿主機(jī)上的9999端口 |
另外
1.需要關(guān)閉防火墻或者開放namesrv和broker端口
如果不設(shè)置,控制臺(tái)服務(wù)將無法訪問namesrv服務(wù)
異常信息如下
org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to failed
關(guān)閉防火墻
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
ps
如果你用的是阿里云或者其他云平臺(tái)服務(wù)器,記得去實(shí)例安全組把這倆端口都打開
搞定后
訪問控制臺(tái)
網(wǎng)頁訪問http://192.168.52.136:9999/查看控制臺(tái)信息
原文地址
感謝作者給了這么全的操作,點(diǎn)贊~這里記錄下是怕原作者的文丟了,我這里也記錄下了
原文地址https://blog.csdn.net/ming19951224/article/details/109063041