Docker安裝RocketMQ

1、創建一個本地文件夾

在usr/local下,創建rktmq文件夾,當做rocketmq的本地映射目錄。(位置或者文件名可自行定義)
在這裏插入圖片描述

2、安裝 Namesrv

拉取鏡像:

$ docker pull rocketmqinc/rocketmq:4.4.0

啓動namesrv:

$ docker run -d -p 9876:9876 -v {RmHome}/data/namesrv/logs:/root/logs -v {RmHome}/data/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq:4.4.0 sh mqnamesrv

{RmHome} 要替換成你的宿主機想保存 MQ 的日誌與數據的地方,通過 docker 的 -v 參數使用 volume 功能,把第一步創建的本地目錄映射到容器內的目錄上。否則所有數據都默認保存在容器運行時的內存中,重啓之後就又回到最初的起點。

docker run -d -p 9876:9876  -v /usr/local/rktmq/data/namesrv/logs:/root/logs  -v /usr/local/rktmq/data/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq:4.4.0 sh mqnamesrv

3、 安裝 broker 服務器

(1) 在 {RmHome}/創建conf 目錄,並在conf下創建 broker.conf 文件,裏面內容:

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 宿主機ip

broker.conf 的文件中的 brokerIP1 是你的 broker 註冊到 Namesrv 中的 ip。如果不指定他會默認取容器中的內網 IP, 除非你的應用也同時部署在網絡相通的容器中,本地或容器外就無法連接 broker 服務了,進而導致類似 RemotingTooMuchRequestException 等各種異常。

(2)啓動broker

$ docker run -d -p 10911:10911 -p 10909:10909 -v {RmHome}/data/broker/logs:/root/logs -v {RmHome}/rocketmq/data/broker/store:/root/store -v {RmHome}/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq:4.4.0 sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

同樣替換{RmHome}爲之前所創建的目錄

$ docker run -d -p 10911:10911 -p 10909:10909 -v  /usr/local/rktmq/data/broker/logs:/root/logs -v  /usr/local/rktmq/rocketmq/data/broker/store:/root/store -v  /usr/local/rktmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

此時可以查看下容器的情況,說明namesrv和broker已經啓動
在這裏插入圖片描述

4、安裝 rocketmq 控制檯

錄取鏡像:

$ docker pull styletang/rocketmq-console-ng

啓動:

$ docker run -d --link rmqnamesrv:rmqnamesrv  -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8001:8080 -t styletang/rocketmq-console-ng

8001是映射的端口,可自行設置。
啓動後可以在瀏覽器打開:http://mq主機ip:映射端口
在這裏插入圖片描述
到此,rocketmq服務已啓動,相應的控制檯項目也啓動了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章