參考了無數個教程失敗以后,我最后照着https://blog.csdn.net/lblblblblzdx/article/details/87938405 修改了一些內容終於把rockrtmq搭好了「😢」。
首先把打開docker把rocketmq鏡像拉下來
可以先搜索你想要的鏡像
docker search rocketmq
接着拉鏡像(由於第一次使用docker 我也是隨便拉的鏡像,版本可自行選擇
docker pull rocketmqinc/rocketmq:4.4.0
由於待會要使用rocketmq-console,這里就先拉下來吧
docker pull styletang/rocketmq-console-ng:latest
接着開始配置,可以先啟動nameserver,我是這么啟動的
1 docker run -d -p 9876:9876 -v /Users/manwaa/work/docker/data/namesrv/logs:/root/logs -v /Users/manwaa/work/docker/data/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq:4.4.0 sh mqnamesrv
實際上
docker run -d -p 9876:9876 -v {本機你想保存數據的地址}/data/namesrv/logs:/root/logs -v {本機你想保存數據的地址}/data/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq:4.4.0 sh mqnamesrv
啟用broker之前要先配置 ,
{本機你用來保存設置的地址}/conf/broker.conf 創建文件
broker.conf
brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH # 以下是我添加的 # 配置nameserver的地址,broker需要上報狀態給nameserver #172.17.0.2 是我進入容器hosts文件查出來的 !!請注意 namesrvAddr = 172.17.0.2:9876 # 配置監聽地址,nameserver會將此地址提供給客戶端使用 # 如果mq服務需要在外網使用則配成外網,需要在內網使用則配成內網地址 brokerIP1 = {本機外網地址} # 監聽端口,默認是10911 listenPort = 10911
接着啟動broker
docker run -d -p 10911:10911 -p 10909:10909 --name rmqb \ -v {本機你用來保存設置的地址}/conf/broker.conf:/etc/rocketmq/broker.conf \ -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \ rocketmqinc/rocketmq:4.4.0 sh mqbroker
接着就可以啟動console了
docker run --name rmqconsole -p 8900:8080 \ -e "JAVA_OPTS=-Drocketmq.namesrv.addr=172.17.0.2:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \ -t styletang/rocketmq-console-ng
##這里注意
8900:8080中的8090是你訪問console時的端口,可以自己改
172.17.0.2 是我從容器hosts里查出來的,自行檢查更改(應該是一樣的吧 hhhh
到了這里運行成功就可以打開localhost:8900訪問console啦!(雖然一片空白 給你欣賞一下我一天的成果ps:fuck