rabbitmq 延迟插件
发布时间:
更新时间:
🕒 阅读时间:3 min read
👀 阅读量:Loading...
一、插件简介
二、插件安装
1、确定卷映射目录
docker inspect rabbitmq运行结果:
"Mounts": [ { "Type": "volume", "Name": "rabbitmq-plugin", "Source": "/var/lib/docker/volumes/rabbitmq-plugin/_data", "Destination": "/plugins", "Driver": "local", "Mode": "z", "RW": true, "Propagation": "" }, { "Type": "volume", "Name": "cca7bc3012f5b76bd6c47a49ca6911184f9076f5f6263b41f4b9434a7f269b11", "Source": "/var/lib/docker/volumes/cca7bc3012f5b76bd6c47a49ca6911184f9076f5f6263b41f4b9434a7f269b11/_data", "Destination": "/var/lib/rabbitmq", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ]和容器内/plugins目录对应的宿主机目录是:/var/lib/docker/volumes/rabbitmq-plugin/_data
2、下载延迟插件
官方文档说明页地址:https://www.rabbitmq.com/community-plugins.html

下载插件安装文件:
wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.13.0/rabbitmq_delayed_message_exchange-3.13.0.ezmv rabbitmq_delayed_message_exchange-3.13.0.ez /var/lib/docker/volumes/rabbitmq-plugin/_data3、启用插件
# 登录进入容器内部docker exec -it rabbitmq /bin/bash
# rabbitmq-plugins命令所在目录已经配置到$PATH环境变量中了,可以直接调用rabbitmq-plugins enable rabbitmq_delayed_message_exchange
# 退出Docker容器exit
# 重启Docker容器docker restart rabbitmq4、确认
确认点1:查看当前节点已启用插件的列表:

确认点2:如果创建新交换机时可以在type中看到x-delayed-message选项,那就说明插件安装好了

三、创建交换机
rabbitmq_delayed_message_exchange插件在工作时要求交换机是x-delayed-message类型才可以,创建方式如下:

关于x-delayed-type参数的理解:
原本指定交换机类型的地方使用了x-delayed-message这个值,那么这个交换机除了支持延迟消息之外,到底是direct、fanout、topic这些类型中的哪一个呢?
这里就额外使用x-delayed-type来指定交换机本身的类型
四、代码测试
1、生产者端代码
@Testpublic void testSendDelayMessage() { rabbitTemplate.convertAndSend( EXCHANGE_DELAY, ROUTING_KEY_DELAY, "测试基于插件的延迟消息 [" + new SimpleDateFormat("hh:mm:ss").format(new Date()) + "]", messageProcessor -> {
// 设置延迟时间:以毫秒为单位 messageProcessor.getMessageProperties().setHeader("x-delay", "10000");
return messageProcessor; });}
留言评论