網站首頁 編程語言 正文
準備工作
RabbitMQ默認不帶延遲隊列插件,可以到官網去下載指定版本的插件,并手動安裝到RabbitMQ環境中,在這里我使用的RabbitMQ版本是:
rabbitmq:3.8-management
延遲隊列插件版本是:
rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez
以上版本僅供參考學習,實際使用請自行選擇。
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
操作步驟
執行命令
docker-compose -f docker-compose.yml up
需要容器后臺運行的話加個 -d
docker-compose -f docker-compose.yml up -d
然后我們將下載到的插件拷貝到rabbitmq容器的/plugins目錄下
docker cp rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez myrabbit:/plugins
進入容器內,啟動我們剛剛添加的插件
docker exec -it myrabbit bash
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
查看插件是否有安裝成功
在容器內執行:
rabbitmq-plugins list
在宿主機中執行這個:
docker exec myrabbit rabbitmq-plugins list
能看到我們新添加的插件就說明成功了
優化搭建步驟
上面的步驟有些麻煩,當我們需要頻繁的搭建RabbitMQ環境的時候就不方便了,所以我們可以優化一下,做一些準備工作,讓后續的容器搭建變得便利。
目的
一鍵創建并啟動RabbitMQ容器,并且附帶延遲隊列插件
思路
在rabbitmq原有鏡像的基礎上,制作新鏡像,在容器啟動之后自行啟用插件
步驟
創建鏡像文件夾:
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
上面的內容是依賴于rabbitmq:3.8-management鏡像,并且將當前目錄下的插件文件拷貝到/plugins中,然后執行插件啟用命令
此時image文件夾的目錄結構是這樣的:
- image Dockerfile rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez
記得把插件準備好
制作鏡像:
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環境都不用再手動安裝插件了。
原文鏈接:https://juejin.cn/post/7138717546894589966
相關推薦
- 2024-03-06 SpringAOP基于注解方式實現和細節
- 2022-11-10 Android開發Jetpack組件ViewModel與LiveData使用講解_Android
- 2023-01-23 Kotlin泛型的型變之路演變示例詳解_Android
- 2022-05-12 Android 11 適配存儲權限
- 2023-01-29 Python?find()、rfind()方法及作用_python
- 2022-07-12 Shell中常用的基礎命令
- 2022-07-06 使用GO操作MongoDB的方法_Golang
- 2022-12-10 React?useCallback詳細使用教程_React
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支