curl -sSL https://get.daocloud.io/docker | sh
sudo systemctl start docker
docker pull rabbitmq:management
注意修改用户名和密码
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
参数说明
-d 后台运行容器;
--name 指定容器名;
-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
-v 映射目录或文件;
--hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
-e 指定环境变量;(RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)
docker inspect rabbitmq:management
示例(信息较多,耐心找一下~)

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

如下图所示,我的RabbitMQ 版本是3.9.14,我这里选择下载3.9.0版本的插件

将插件文件上传到服务器,我这里是直接上传到/root下了
docker cp /root/rabbitmq_delayed_message_exchange-3.9.0.ez rabbit:/plugins
我刚刚是将插件上传到/root下了; rabbit是容器的name,也可以使用容器id
docker exec -it rabbit /bin/bash
cd plugins
ls |grep delay
(注意是在plugins内)
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

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

其他部分代码都是通常的代码,只有声明交换机是特殊的
/**
* 声明交换机
*
* @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);
}