docker安裝rocketMq5x以上的版本
1.背景
安裝RocketMQ 5.x以上的版本主要是因?yàn)樾掳姹疽肓嗽S多性能優(yōu)化、新功能以及對(duì)已有特性的增強(qiáng),這些改進(jìn)可以幫助提升消息隊(duì)列系統(tǒng)的穩(wěn)定性和效率。
1.性能提升:RocketMQ 5.x版本通常包括了對(duì)消息處理速度、吞吐量和延遲的優(yōu)化,使得系統(tǒng)能更好地應(yīng)對(duì)大規(guī)模、高并發(fā)場(chǎng)景。
2.新特性:
- Pop與Ack機(jī)制改進(jìn):RocketMQ 5.x對(duì)Pop(拉取消息)和Ack(確認(rèn)消息)機(jī)制進(jìn)行了優(yōu)化,增強(qiáng)了消息處理的可靠性和靈活性。
- 消息追蹤與診斷:提供了更強(qiáng)大的消息軌跡功能,便于追蹤消息流轉(zhuǎn)全鏈路,有助于問題排查和性能分析。
- HTTP協(xié)議支持:5.x版本可能進(jìn)一步完善了HTTP協(xié)議的支持,使得集成更加便捷,特別是在云原生和微服務(wù)架構(gòu)中。
- 定時(shí)/延時(shí)消息改進(jìn):新版本可能簡(jiǎn)化了定時(shí)消息和延時(shí)消息的管理,比如提供更靈活的創(chuàng)建方式,不再局限于手動(dòng)使用mqadmin工具。
3.安全性與穩(wěn)定性:每個(gè)大版本的迭代都會(huì)修復(fù)已知的安全漏洞,并增加新的安全特性,確保數(shù)據(jù)傳輸?shù)陌踩院拖到y(tǒng)的穩(wěn)定性。
4.云原生支持:隨著Kubernetes等容器編排技術(shù)的普及,RocketMQ 5.x版本可能增強(qiáng)了對(duì)云原生環(huán)境的支持,包括更好的Docker和K8s集成,便于在云環(huán)境中部署和管理。
5.易用性與兼容性:新版本通常會(huì)改進(jìn)用戶界面和管理工具,使得操作更為直觀。同時(shí),也會(huì)提高與其他技術(shù)和框架的兼容性,減少集成難度。
6.社區(qū)與生態(tài):隨著版本的更新,社區(qū)支持和第三方插件、工具也會(huì)隨之跟進(jìn),使用最新版本能更好地利用這些資源。
2.拉取鏡像
2.1 拉取RocketMQ鏡像
docker pull apache/rocketmq:latest
2.2 拉取RocketMQ Dashboard鏡像
docker pull apacherocketmq/rocketmq-dashboard:latest
3.創(chuàng)建網(wǎng)絡(luò)(如果需要多個(gè)容器互聯(lián))
docker network create rocketmq-net
4.創(chuàng)建相關(guān)映射目錄
mkdir -p /Users/hb24795/soft/docker/rocketMq5.0/mnt/rocketmq/namesrv/logs /Users/hb24795/soft/docker/rocketMq5.0/mnt/rocketmq/namesrv/store mkdir -p /Users/hb24795/soft/docker/rocketMq5.0/mnt/rocketmq/broker/logs /Users/hb24795/soft/docker/rocketMq5.0/mnt/rocketmq/broker/store mkdir -p /Users/hb24795/soft/docker/rocketMq5.0/mnt/rocketmq/broker/logs /Users/hb24795/soft/docker/rocketMq5.0/mnt/rocketmq/broker/store
注意你需要將/Users/hb24795/soft/這個(gè)地址修改為你自己系統(tǒng)的地址
5.添加boker的配置文件
地址:/Users/hb24795/soft/docker/rocketMq5.0/conf
注意:你需要將/Users/hb24795/soft/docker這個(gè)地址修改為你自己系統(tǒng)的地址
添加配置文件:broker.conf
# Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # 所屬集群名字 brokerClusterName=DefaultCluster # broker 名字,注意此處不同的配置文件填寫的不一樣,如果在 broker-a.properties 使用: broker-a, # 在 broker-b.properties 使用: broker-b brokerName=broker-a # 0 表示 Master,> 0 表示 Slave brokerId=0 # 啟動(dòng)IP,如果 docker 報(bào) com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <192.168.0.120:10909> failed # 解決方式1 加上一句 producer.setVipChannelEnabled(false);,解決方式2 brokerIP1 設(shè)置宿主機(jī)IP,不要使用docker 內(nèi)部IP brokerIP1=192.168.31.169 # nameServer地址,分號(hào)分割 namesrvAddr=192.168.31.169:9876 # 在發(fā)送消息時(shí),自動(dòng)創(chuàng)建服務(wù)器不存在的topic,默認(rèn)創(chuàng)建的隊(duì)列數(shù) defaultTopicQueueNums=4 # 是否允許 Broker 自動(dòng)創(chuàng)建 Topic,建議線下開啟,線上關(guān)閉 !?。∵@里仔細(xì)看是 false,false,false autoCreateTopicEnable=true # 是否允許 Broker 自動(dòng)創(chuàng)建訂閱組,建議線下開啟,線上關(guān)閉 autoCreateSubscriptionGroup=true # Broker 對(duì)外服務(wù)的監(jiān)聽端口 listenPort=10911 # 刪除文件時(shí)間點(diǎn),默認(rèn)凌晨4點(diǎn) deleteWhen=04 # 文件保留時(shí)間,默認(rèn)48小時(shí) fileReservedTime=120 # commitLog 每個(gè)文件的大小默認(rèn)1G mapedFileSizeCommitLog=1073741824 # ConsumeQueue 每個(gè)文件默認(rèn)存 30W 條,根據(jù)業(yè)務(wù)情況調(diào)整 mapedFileSizeConsumeQueue=300000 # destroyMapedFileIntervalForcibly=120000 # redeleteHangedFileInterval=120000 # 檢測(cè)物理文件磁盤空間 diskMaxUsedSpaceRatio=88 # 存儲(chǔ)路徑 # storePathRootDir=/home/ztztdata/rocketmq-all-4.1.0-incubating/store # commitLog 存儲(chǔ)路徑 # storePathCommitLog=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/commitlog # 消費(fèi)隊(duì)列存儲(chǔ) # storePathConsumeQueue=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/consumequeue # 消息索引存儲(chǔ)路徑 # storePathIndex=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/index # checkpoint 文件存儲(chǔ)路徑 # storeCheckpoint=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/checkpoint # abort 文件存儲(chǔ)路徑 # abortFile=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/abort # 限制的消息大小 maxMessageSize=65536 # flushCommitLogLeastPages=4 # flushConsumeQueueLeastPages=2 # flushCommitLogThoroughInterval=10000 # flushConsumeQueueThoroughInterval=60000 # Broker 的角色 # - ASYNC_MASTER 異步復(fù)制Master # - SYNC_MASTER 同步雙寫Master # - SLAVE brokerRole=ASYNC_MASTER # 刷盤方式 # - ASYNC_FLUSH 異步刷盤 # - SYNC_FLUSH 同步刷盤 flushDiskType=ASYNC_FLUSH # 發(fā)消息線程池?cái)?shù)量 # sendMessageThreadPoolNums=128 # 拉消息線程池?cái)?shù)量 # pullMessageThreadPoolNums=128
注意:你要將
- brokerIP1=192.168.31.169
- namesrvAddr=192.168.31.169:9876
這兩個(gè)ip地址修改為你本機(jī)或公網(wǎng)的ip地址
6.啟動(dòng)服務(wù)
1.mq
docker run -d --name rmqnamesrv \
-p 9876:9876 \
--network rocketmq-net \
-v /Users/hb24795/soft/docker/rocketMq5.0/mnt/rocketmq/namesrv/logs:/root/logs \
-v /Users/hb24795/soft/docker/rocketMq5.0/mnt/rocketmq/namesrv/store:/root/store \
apache/rocketmq:latest sh mqnamesrv
2.broker
docker run -d --name rmqnamesrv \
-p 9876:9876 \
--network rocketmq-net \
-v /Users/hb24795/soft/docker/rocketMq5.0/mnt/rocketmq/namesrv/logs:/root/logs \
-v /Users/hb24795/soft/docker/rocketMq5.0/mnt/rocketmq/namesrv/store:/root/store \
apache/rocketmq:latest sh mqnamesrv
3.dashboard
docker run -d --name rmqdashboard \
--network rocketmq-net \
-p 8080:8080 \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.31.169:9876" \
apacherocketmq/rocketmq-dashboard:latest
啟動(dòng)完成之后,可以先docker ps確保自己的服務(wù)都全部成功,在訪問:ip:8080

出現(xiàn)改頁(yè)面說明你配置成功
到此這篇關(guān)于docker安裝rocketMq5x以上的版本的文章就介紹到這了,更多相關(guān)docker安裝rocketMq內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker容器內(nèi)運(yùn)行jupyter映射到本地方式
通過在容器內(nèi)指定Jupyter的IP為0.0.0.0,并使用--no-browser參數(shù),可以正確將Jupyter端口映射到本地,具體步驟包括在本地機(jī)器運(yùn)行Docker容器,指定端口映射;在容器內(nèi)運(yùn)行Jupyter Notebook,設(shè)置--ip和--no-browser參數(shù)(一般還需--allow-root)2024-11-11
關(guān)于docker安全之Docker-TLS加密通訊問題
這篇文章主要介紹了docker安全之Docker-TLS加密通訊,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
Docker 手動(dòng)配置容器網(wǎng)絡(luò)實(shí)例詳解
這篇文章主要介紹了Docker 手動(dòng)配置容器網(wǎng)絡(luò)實(shí)例詳解的相關(guān)資料,這里有具體實(shí)現(xiàn),需要的朋友可以參考下2016-11-11
docker實(shí)現(xiàn)redis-cluster模式集群部署的示例代碼
本文介紹了使用Docker部署Redis Cluster集群的完整方案,采用3臺(tái)服務(wù)器,每臺(tái)運(yùn)行2個(gè)Redis實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2026-04-04

