docker安裝RabbitMQ及安裝延遲插件的詳細(xì)過程
我這個(gè)安裝攻略首先得保證服務(wù)器上安裝過docker了 如果沒安裝docker請(qǐng)先去安裝docker
1.首先說一下什么是MQ
MQ(message queue)字面意思上來說消息隊(duì)列,F(xiàn)IFO先入先出,隊(duì)列中存入的內(nèi)容是message,是一種跨進(jìn)程的通信機(jī)制,用于上下游傳遞消息。MQ 是一種非常常見的上下游“邏輯解耦+物理解耦”的消息通信服務(wù)。使用了 MQ 之后,消息發(fā)送上游只需要依賴 MQ,不用依賴其他服務(wù)。
1.1為什么要用MQ/MQ有什么用
1.1.1流量消峰
比如說訂單系統(tǒng)最多一次可以處理一萬次訂單,這個(gè)處理能力在正常時(shí)段下單時(shí)綽綽有余,但是在高峰期時(shí)如果有兩萬次下單操作系統(tǒng)是處理不了的只能限制訂單超過一萬次后不允許用戶下單,但是如果使用消息隊(duì)列做緩沖,我們可以取消這個(gè)限制,把一米內(nèi)的訂單分散成一段時(shí)間來處理,這個(gè)時(shí)候有些用戶可能在下單十幾秒后才能收到下單成功消息 但是這樣總比不能讓用戶下單體驗(yàn)好
1.1.2應(yīng)用解耦
以電商應(yīng)用為例,應(yīng)用中有訂單系統(tǒng)、庫存系統(tǒng)、物流系統(tǒng)、支付系統(tǒng)。用戶創(chuàng)建訂單后,如果耦合調(diào)用庫存系統(tǒng)、物流系統(tǒng)、支付系統(tǒng),任何一個(gè)子系統(tǒng)出了故障,都會(huì)造成下單操作異常。當(dāng)轉(zhuǎn)變成基于消息隊(duì)列的方式后,系統(tǒng)間調(diào)用的問題會(huì)減少很多,比如物流系統(tǒng)因?yàn)榘l(fā)生故障,需要幾分鐘來修復(fù)。在這幾分鐘的時(shí)間里,物流系統(tǒng)要處理的內(nèi)存被緩存在消息隊(duì)列中,用戶的下單操作可以正常完成。當(dāng)物流系統(tǒng)恢復(fù)后,繼續(xù)處理訂單信息即可,中單用戶感受不到物流系統(tǒng)的故障,提升系統(tǒng)的可用性
1.1.3異步處理
有些服務(wù)間調(diào)用是異步的,例如 A 調(diào)用 B,B 需要花費(fèi)很長時(shí)間執(zhí)行,但是 A 需要知道 B 什么時(shí)候可以執(zhí)行完,一般有兩種方式,A 過一段時(shí)間去調(diào)用 B 的查詢 api 查詢?;蛘?A 提供一個(gè) callbackB 執(zhí)行完之后調(diào)用 api 通知 A 服務(wù)。這兩種方式都不是很優(yōu)雅,使用消息總線,可以很方便解決這個(gè)問題,A 調(diào)用 B 服務(wù)后,只需要監(jiān)聽 B 處理完成的消息,當(dāng) B 處理完成后,會(huì)發(fā)送一條消息給 MQ,MQ 會(huì)將此消息轉(zhuǎn)發(fā)給 A 服務(wù)。這樣 A 服務(wù)既不用循環(huán)調(diào)用 B 的查詢 api,也不用提供 callback同樣 B 服務(wù)也不用做這些操作。A 服務(wù)還能及時(shí)的得到異步處理成功的消息。
2.安裝RabbitMq
接下來使用docker進(jìn)行RabbitMQ的安裝
2.1首先拉取鏡像
直接拉取鏡像的話默認(rèn)拉取最新的版本
docker pull rabbitmq:management
2.2啟動(dòng)鏡像
注意修改用戶名和密碼
docker run -d -p 15672:15672 -p 5672:5672 \ -e RABBITMQ_DEFAULT_VHOST=my_vhost \ -e RABBITMQ_DEFAULT_USER=admin \ -e RABBITMQ_DEFAULT_PASS=admin \ --hostname myRabbit \ --name rabbitmq \ rabbitmq
參數(shù)說明:
- -d:表示在后臺(tái)運(yùn)行容器;
- -p:將容器的端口 5672(應(yīng)用訪問端口)和 15672 (控制臺(tái)Web端口號(hào))映射到主機(jī)中;
- -e:指定環(huán)境變量:
- RABBITMQ_DEFAULT_VHOST:默認(rèn)虛擬機(jī)名;
- RABBITMQ_DEFAULT_USER:默認(rèn)的用戶名;
- RABBITMQ_DEFAULT_PASS:默認(rèn)的用戶密碼;
- --hostname:指定主機(jī)名(RabbitMQ 的一個(gè)重要注意事項(xiàng)是它根據(jù)所謂的 節(jié)點(diǎn)名稱 存儲(chǔ)數(shù)據(jù),默認(rèn)為主機(jī)名);
- --name rabbitmq:設(shè)置容器名稱;
- rabbitmq:容器使用的鏡像名稱;
啟動(dòng)完成后可以通過 docker ps 命令來查看容器是否啟動(dòng)
還可以設(shè)置docker啟動(dòng)時(shí)自動(dòng)啟動(dòng)
docker update rabbitmq --restart=always
2.3啟動(dòng) rabbitmq_management (RabbitMQ后臺(tái)管理)
//進(jìn)入容器內(nèi)部 我這里使用容器名字進(jìn)入 也可以使用容器id docker exec -it rabbitmq /bin/bash ---------------------------------- //開啟web后臺(tái)管理界面 rabbitmq-plugins enable rabbitmq_management
2.3.1打開RabbitMQweb界面
- 瀏覽器輸入地址 hhtp://ip:15672 即可訪問后臺(tái)管理界面 這里的ip為運(yùn)行RabbitMQ的服務(wù)器ip
- 默認(rèn)的用戶名和密碼都是guest
- 但由于我們啟動(dòng)的時(shí)候設(shè)置了默認(rèn)的用戶名和密碼,所以我們可以使用設(shè)置的用戶名和密碼登錄。
如果無法訪問 可以嘗試打開防火墻 如果是在阿里或者騰訊之類的服務(wù)器 要打開安全組的端口!!
到這里 我們docker安裝RabbitMQ就完成了 接下來進(jìn)行延遲插件的安裝
3.插件下載并安裝
下載地址 https://www.rabbitmq.com/community-plugins.html
進(jìn)入web端后左上角有顯示當(dāng)前安裝的RabbitMQ版本
我這里安裝的是3.10版本所以我直接下載最新版的插件就可以
安裝完成后用工具將插件文件上傳到服務(wù)器上
將剛剛上傳的插件拷貝到容器內(nèi)plugins目錄下
docker cp /root/rabbitmq_delayed_message_exchange-3.10.2.ez rabbitmq:/plugins
上傳之后進(jìn)入容器內(nèi)部
//進(jìn)入容器 我這里使用容器名字 也可以用容器id進(jìn)入 docker exec -it rabbitmq /bin/bash ------------------------------------- //移動(dòng)到plugins目錄下 cd plugins ------------------------------------- //查看是否上傳成功 ls
然后我們啟動(dòng)插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
安裝成功后 退出容器
exit
然后重啟容器
//我這里還是使用容器名稱 也可以使用容器id docker restart rabbitmq
容器啟動(dòng)成功之后,登錄RabbitMQ的管理界面(ip:15672 訪問web界面),找到ExchangesTab頁。點(diǎn)擊Add a new exchange,在Type里面查看是否有x-delayed-message選項(xiàng),如果存在就代表插件安裝成功。
到這里我們的docker 安裝RabbitMQ及延遲插件的安裝就已經(jīng)結(jié)束了?。?/p>
到此這篇關(guān)于docker安裝RabbitMQ及安裝延遲插件的文章就介紹到這了,更多相關(guān)docker安裝RabbitMQ內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker 容器監(jiān)控原理及 cAdvisor的安裝與使用說明
這篇文章主要介紹了Docker 容器監(jiān)控原理及 cAdvisor的安裝與使用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11如何使用docker極簡打包java.jar鏡像并啟動(dòng)
這篇文章主要介紹了如何使用docker極簡打包java.jar鏡像并啟動(dòng),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08Docker安裝Nginx并部署及MySQL容器構(gòu)建全過程
眾所周知Docker是一種容器化技術(shù),可以用來快速部署和管理應(yīng)用程序,這篇文章主要給大家介紹了關(guān)于Docker安裝Nginx并部署及MySQL容器構(gòu)建的相關(guān)資料,需要的朋友可以參考下2024-02-02dockerfile-maven-plugin使用指南小結(jié)
最近在將應(yīng)用部署到容器平臺(tái),需要在打包時(shí)生成docker鏡像,在網(wǎng)上首先搜到了docker-maven-plugin這個(gè)插件,本文就來介紹了dockerfile-maven-plugin使用小結(jié),感興趣的可以了解一下2021-09-09Docker內(nèi)如何訪問本機(jī)(宿主機(jī))的具體方法
這篇文章主要介紹了Docker內(nèi)如何訪問本機(jī)(宿主機(jī))的具體方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10docker-swarm教程之安全保護(hù)加密數(shù)據(jù)的方法詳解
默認(rèn)情況下,集群管理器使用的raft 算法的日志在磁盤上加密,這種靜態(tài)加密可保護(hù)服務(wù)配置和數(shù)據(jù)免受訪問加密Raft日志的攻擊者的攻擊,因此引入了Docker secret功能,來保證加密文件的安全,本文將給大家詳細(xì)的介紹一下如何安全的保護(hù)加密數(shù)據(jù)2023-08-08使用docker在linux環(huán)境中部署springboot包的教程
這篇文章主要介紹了使用docker在linux環(huán)境中部署springboot包,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03ubuntu vps安裝docker報(bào)錯(cuò):Cannot connect to t
這篇文章主要介紹了解決ubuntu vps安裝docker時(shí)報(bào)錯(cuò):Cannot connect to the Docker daemon at unix:///var/run/docker.sock.問題的相關(guān)資料,文中介紹非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-04-04