Docker常用命令大全
Docker常用命令大全
使用Docker安裝RocketMQ 能夠更加方便的部署和管理,以下是基本步驟:
RocketMQ
是一個(gè)分布式的消息中間件,由NameServer
和Broker兩個(gè)角色組成,是一種典型的基于發(fā)布/訂閱模式的消息通信解決方案。
-
NameServer
是 RocketMQ 的命名服務(wù),可以理解為類似于 DNS 的服務(wù),它主要負(fù)責(zé)記錄 Topic 的路由信息和 Broker 的地址信息。每個(gè) RocketMQ 集群都必須至少有一個(gè) NameServer,多個(gè) NameServer 之間是無狀態(tài)且平等的,因此可以通過擴(kuò)容的方式實(shí)現(xiàn)高可用。當(dāng) Producer 或 Consumer 客戶端需要發(fā)送或接收消息時(shí),需要先向 NameServer 查詢相應(yīng) Topic 的 Broker 信息,然后再與 Broker 建立連接。 -
Broker
是 RocketMQ 的消息存儲(chǔ)和傳輸代理,負(fù)責(zé)消息的存儲(chǔ)和轉(zhuǎn)發(fā)。每個(gè) Broker 負(fù)責(zé)管理若干個(gè) Topic 的消息隊(duì)列,同時(shí)支持主從復(fù)制和多 Master 架構(gòu),并且通過存儲(chǔ)級(jí)別來控制消息在 Broker 上的存儲(chǔ)時(shí)間和存儲(chǔ)方式。Broker 之間也可通過合作來提高消息處理效率和集群的容錯(cuò)能力。
NameServer
和 Broker
之間通過心跳檢測(cè)機(jī)制進(jìn)行通信,以保證 NameServer 可以及時(shí)更新 Broker 的狀態(tài)信息,Broker 也可以獲取最新的 Topic 路由信息。在 RocketMQ 中,通過配置 Broker 的 namesrvAddr 參數(shù)來指定所屬的 NameServer 地址。
因此,NameServer 和 Broker 是密不可分且相互協(xié)作的,通過它們的配合來實(shí)現(xiàn) RocketMQ 的消息傳輸與處理。
1、拉取RocketMQ 鏡像:
docker pull rocketmqinc/rocketmq
2、運(yùn)行RocketMQ 實(shí)例:
在運(yùn)行實(shí)例之前,需要?jiǎng)?chuàng)建一個(gè)存儲(chǔ)目錄,用于保存RocketMQ 的數(shù)據(jù)和日志。例如:
mkdir /opt/rocketmq/data
mkdir /opt/rocketmq/logs
然后,使用以下命令來啟動(dòng)RocketMQ 實(shí)例:
docker run -d --name rmqnamesrv -p 9876:9876 -v /opt/rocketmq/data:/root/rocketmq/data -v /opt/rocketmq/logs:/root/rocketmq/logs rocketmqinc/rocketmq sh mqnamesrv
這將在后臺(tái)啟動(dòng)名字服務(wù)器,并將其映射到主機(jī)的9876
端口。將/opt/rocketmq/data
和/opt/rocketmq/logs
目錄分別掛載到容器內(nèi)的/root/rocketmq/data
和/root/rocketmq/logs
目錄中,以便宿主機(jī)可以訪問RocketMQ的數(shù)據(jù)和日志。
接下來,使用以下命令來啟動(dòng)Broker實(shí)例:
docker run -d --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=127.0.0.1:9876" -p 10911:10911 -p 10909:10909 -v /opt/rocketmq/data:/root/rocketmq/data -v /opt/rocketmq/logs:/root/rocketmq/logs rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq/conf/broker.conf
這將在后臺(tái)啟動(dòng)Broker實(shí)例,并將其映射到主機(jī)的10911
和10909
端口。將/opt/rocketmq/data
和/opt/rocketmq/logs
目錄分別掛載到容器內(nèi)的/root/rocketmq/data
和/root/rocketmq/logs
目錄中,以便容器可以訪問RocketMQ的數(shù)據(jù)和日志,并且配置 Broker
的 NAMESRV_ADDR
參數(shù)來指定所屬的 NameServer
地址。
注意:在上述命令中,我們使用了–link參數(shù)將名字服務(wù)器容器鏈接到Broker容器。還要將名字服務(wù)器的地址設(shè)置為NAMESRV_ADD
R環(huán)境變量,并將其設(shè)置為namesrv:9876
,以便Broker容器可以正確訪問名字服務(wù)器。
3、測(cè)試RocketMQ :
通過 RocketMQ 的控制臺(tái)或者命令行等方式進(jìn)行測(cè)試,確保 RocketMQ 正常運(yùn)行。例如,可以使用 mqadmin 工具進(jìn)行簡(jiǎn)單的測(cè)試,示例如下:文章來源:http://www.zghlxwxcb.cn/news/detail-533961.html
docker run --rm rocketmqinc/rocketmq:4.9.1 sh mqadmin clusterList -n 127.0.0.1:9876
以上是Docker安裝RocketMQ 的基本步驟,具體的細(xì)節(jié)還需要參考官方文檔。文章來源地址http://www.zghlxwxcb.cn/news/detail-533961.html
到了這里,關(guān)于使用 Docker 安裝 RocketMQ 使用 docker 安裝 rocketmq的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!