網(wǎng)站首頁 編程語言 正文
準(zhǔn)備工作
RabbitMQ默認(rèn)不帶延遲隊列插件,可以到官網(wǎng)去下載指定版本的插件,并手動安裝到RabbitMQ環(huán)境中,在這里我使用的RabbitMQ版本是:
rabbitmq:3.8-management
延遲隊列插件版本是:
rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez
以上版本僅供參考學(xué)習(xí),實際使用請自行選擇。
docker-compose腳本
RabbitMQ的docker-compose安裝腳本如下:
version: "3" services: rabbitmq: container_name: myrabbit ports: - 15672:15672 - 5672:5672 restart: always volumes: - /etc/localtime:/etc/localtime - /home/mycontainers/myrabbit/rabbitmq:/var/lib/rabbitmq network_mode: mynetwork environment: - RABBITMQ_DEFAULT_USER=admin - RABBITMQ_DEFAULT_PASS=123456 image: myrabbitmq:3.8-management
操作步驟
執(zhí)行命令
docker-compose -f docker-compose.yml up
需要容器后臺運(yùn)行的話加個 -d
docker-compose -f docker-compose.yml up -d
然后我們將下載到的插件拷貝到rabbitmq容器的/plugins目錄下
docker cp rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez myrabbit:/plugins
進(jìn)入容器內(nèi),啟動我們剛剛添加的插件
docker exec -it myrabbit bash
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
查看插件是否有安裝成功
在容器內(nèi)執(zhí)行:
rabbitmq-plugins list
在宿主機(jī)中執(zhí)行這個:
docker exec myrabbit rabbitmq-plugins list
能看到我們新添加的插件就說明成功了
優(yōu)化搭建步驟
上面的步驟有些麻煩,當(dāng)我們需要頻繁的搭建RabbitMQ環(huán)境的時候就不方便了,所以我們可以優(yōu)化一下,做一些準(zhǔn)備工作,讓后續(xù)的容器搭建變得便利。
目的
一鍵創(chuàng)建并啟動RabbitMQ容器,并且附帶延遲隊列插件
思路
在rabbitmq原有鏡像的基礎(chǔ)上,制作新鏡像,在容器啟動之后自行啟用插件
步驟
創(chuàng)建鏡像文件夾:
mkdir image
cd image
編寫Dockerfile文件:
FROM rabbitmq:3.8-management
COPY rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez /plugins
RUN rabbitmq-plugins enable --offline rabbitmq_delayed_message_exchange
上面的內(nèi)容是依賴于rabbitmq:3.8-management鏡像,并且將當(dāng)前目錄下的插件文件拷貝到/plugins中,然后執(zhí)行插件啟用命令
此時image文件夾的目錄結(jié)構(gòu)是這樣的:
- image Dockerfile rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez
記得把插件準(zhǔn)備好
制作鏡像:
docker build -t myrabbitmq:3.8-management .
查看鏡像:
docker images
修改原來的docker-compose腳本,修改鏡像為:
version: "3" services: rabbitmq: container_name: myrabbit ports: - 15672:15672 - 5672:5672 restart: always volumes: - /etc/localtime:/etc/localtime - /home/mycontainers/myrabbit/rabbitmq:/var/lib/rabbitmq network_mode: mynetwork environment: - RABBITMQ_DEFAULT_USER=admin - RABBITMQ_DEFAULT_PASS=123456 image: myrabbitmq:3.8-management # 只改了這里,其他都是一樣的
重新啟動即可,由此,我們后面每次搭建新的RabbitMQ環(huán)境都不用再手動安裝插件了。
原文鏈接:https://juejin.cn/post/7138717546894589966
相關(guān)推薦
- 2023-07-22 BeanFactory和FactoryBean區(qū)別
- 2022-08-25 C++詳細(xì)講解互斥量與lock_guard類模板及死鎖_C 語言
- 2022-12-01 Go語言中基本數(shù)據(jù)類型的相互轉(zhuǎn)換詳解_Golang
- 2022-10-22 C++lambda表達(dá)式使用介紹_C 語言
- 2024-01-15 IDEA 常量字符串過長問題
- 2022-06-02 jquery實現(xiàn)界面點擊按鈕彈出懸浮框_jquery
- 2022-07-07 WCF的異常處理_C#教程
- 2022-11-16 Python中Pygame模塊的詳細(xì)安裝過程_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支