码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Docker安装RabbitMQ并安装延迟插件


    安装Docker

    一键安装docker

    curl -sSL https://get.daocloud.io/docker | sh
    
    • 1

    启动docker

    sudo systemctl start docker
    
    • 1

    Docker内安装RabbitMQ

    拉取镜像

    docker pull rabbitmq:management
    
    • 1

    启动镜像

    注意修改用户名和密码

    docker run -d -p 5672:5672 -p 15672:15672 -p 15674:15674  -p 5671:5671  -p 15671:15671 --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:management
    
    • 1

    参数说明

    -d 后台运行容器;
    --name 指定容器名;
    -p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
    -v 映射目录或文件;
    --hostname  主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
    -e 指定环境变量;(RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    下载延迟插件

    查看镜像的信息获取版本号

    docker inspect rabbitmq:management
    
    • 1

    示例(信息较多,耐心找一下~)
    镜像的信息获取版本号

    根据版本号下载延迟插件

    下载地址:https://www.rabbitmq.com/community-plugins.html
    如下图所示,点Releases,会跳转到GitHub

    下载延时插件
    如下图所示,我的RabbitMQ 版本是3.9.14,我这里选择下载3.9.0版本的插件
    GitHub下载延时插件
    将插件文件上传到服务器,我这里是直接上传到/root下了

    详解Spring Cloud Stream使用延迟消息实现定时任务(RabbitMQ)
    pdf 0星 超过10%的资源 152KB
    下载

    安装插件并启用

    将刚刚上传的插件拷贝到容器内plugins目录下

    docker cp /root/rabbitmq_delayed_message_exchange-3.9.0.ez rabbit:/plugins
    
    • 1

    我刚刚是将插件上传到/root下了; rabbit是容器的name,也可以使用容器id

    进入到RabbitMQ容器内部

    docker exec -it rabbit /bin/bash
    
    • 1

    查看插件是否存在

    cd plugins
    ls |grep delay
    
    • 1
    • 2

    启用插件

    (注意是在plugins内)

    rabbitmq-plugins enable rabbitmq_delayed_message_exchange
    
    • 1

    启用插件
    从容器内退出

    exit
    
    • 1

    重启RabbitMQ容器

    docker restart rabbit
    
    • 1

    容器启动成功之后,登录RabbitMQ的管理界面(ip:15672 访问web界面),找到ExchangesTab页。点击Add a new exchange,在Type里面查看是否有x-delayed-message选项,如果存在就代表插件安装成功。
    插件安装成功

    Java SpringBoot 代码部分

    其他部分代码都是通常的代码,只有声明交换机是特殊的

    /**
     * 声明交换机
     *
     * @return
     */
    @Bean("delayExchange")
    public Exchange delayExchange(){
    	Map args = new HashMap<>(1);
        args.put("x-delayed-type", "direct");
        return new CustomExchange("delay.exchange", "x-delayed-message", true, false, args);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    QFluentWidgets: 基于 C++ Qt 的 Fluent Design 组件库
    深度学习笔记之优化算法(四)Nesterov动量方法的简单认识
    java毕业设计项目源代码javaweb租车汽车租赁汽车出租管理系统
    遥测、遥信、遥控、定值?IEC61850?-----极简记录
    vue+videojs视频播放、视频切换、视频断点分段上传
    一个基于.NET7的开源DNS服务 DnsServer 的部署使用经验分享
    Java并发集合
    Elasticsearch索引数据的路由规则与自定义路由分发
    LDO的原理及测试方法
    基于人脸5个关键点的人脸对齐(人脸纠正)
  • 原文地址:https://blog.csdn.net/m0_67391907/article/details/126327503
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号