您好,登錄后才能下訂單哦!
rocketMQ怎么在docker中安裝?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
RocketMQ是一款分布式、隊列模型的消息中間件,是由阿里巴巴設計的,具有以下特點:
支持嚴格的消息順序
支持Topic與Queue兩種模式
億級消息堆積能力
比較友好的分布式特性
同時支持Push與Pull方式消費消息
歷經多次天貓雙十一海量消息考驗
RocketMQ是純java編寫,基于通信框架Netty。
其實小編就沖著RocketMQ歷經多次天貓雙十一海量消息考驗,就感覺應該選擇他了,再加上有億級消息堆積能力,這么強大的一個部件,一個新生的黑馬!接下來帶大家在centos7上用docker安裝rocketMQ.
拉取鏡像
docker pull rocketmqinc/rocketmq:4.4.0
在/usr/local 目錄下新建文件夾 mq
命令: mkdir mq
啟動容器
docker run -d -p 9876:9876 -v {自己的路徑}/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
如下圖,我自己的路徑為 /usr/local/mq
你自己可以自定義路徑。替換路徑即可
注意事項
{自己的路徑} 要替換成你的宿主機想保存 MQ 的日志與數據的地方,通過 docker 的 -v 參數使用 volume 功能,把你本地的目錄映射到容器內的目錄上。否則所有數據都默認保存在容器運行時的內存中,重啟之后就又回到最初的起點。
創建 broker.conf 文件
1:在 {自己的路徑}/conf 目錄下創建 broker.conf 文件
進入之前/usr/local/mq目錄下,輸入命令mkdir conf 新建conf目錄
接著在conf目錄下輸入命令touch broker.conf 新建文件
輸入命令vi broker.conf , 點擊鍵盤insert鍵開始插入狀態
在 broker.conf 中寫入如下內容
brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH brokerIP1 = {本地公網 IP}
(我的是阿里云服務器,箭頭處為 公網ip)
輸入完成后按Esc鍵,按shift再按 v
輸入wq! 退出
啟動容器
docker run -d -p 10911:10911 -p 10909:10909 -v {自己的路徑}/data/broker/logs:/root/logs -v {自己的路徑}/rocketmq/data/broker/store:/root/store -v {自己的路徑}/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
注意事項
注意: {自己的路徑} 同上步一樣,不再綴述。broker.conf 的文件中的 brokerIP1 是你的 broker 注冊到 Namesrv 中的 ip。如果不指定他會默認取容器中的內網 IP。除非你的應用也同時部署在網絡相通的容器中,本地或容器外就無法連接 broker 服務了,進而導致類似 RemotingTooMuchRequestException 等各種異常。
拉取鏡像
docker pull styletang/rocketmq-console-ng
查看鏡docker ps
啟動rocketmq 控制臺
docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=服務器公網ip:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t styletang/rocketmq-console-ng
查看運行中的狀態
狀態為 up 說明成功運行
docker ps -a
關于rocketMQ怎么在docker中安裝問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。