RabbitMQ实现延迟消息(rabbitmq_delayed_message_exchange)
单节点的rabbitmq只需要安装一次,rabbitmq集群需要在每个集群节点上操作
另外,节点类型是ram的无法安装,必须使用disc节点类型的
修改节点类型
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type disc
rabbitmqctl start_app
# rabbitmqctl change_cluster_node_type {disc,ram}
# rabbitmqctl cluster_status 查看节点类型
#将node2加入node1时,指定node2为内存节点(node2默认加入之后默认是ram节点)
rabbitmqctl join_cluster rabbit@node1 --ram
#若集群已搭建好,可以切换节点类型
rabbitmqctl change_cluster_node_type {disc,ram}

节点类似是ram的安装该插件报错提示:

1.检查你的RabbitMQ版本与插件兼容是否一致
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases
rabbitmq:3.8.3-management => rabbitmq_delayed_message_exchange-3.8.0.ez
rabbitmq:3.8.10-management => rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez
rabbitmq:3.9.11-management => rabbitmq_delayed_message_exchange-3.9.0.ez
找到匹配的插件版本后下载
2.在Docker环境下,安装延迟消息插件
进入容器找到plugins目录
> docker exec -it rabbitmq bash
## 可以看到,plugins就是存放 mq 插件的地方了
> ls
将插件复制到plugins目录下
> cd /usr/etc/rabbitmq_plugins
> docker cp rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez rabbit:/plugins
回到plugins目录,查看plugins中是否有rabbitmq_delayed_message_exchange插件
激活插件
> rabbitmq-plugins enable rabbitmq_delayed_message_exchange
查看插件
root@my-rabbit:/plugins# rabbitmq-plugins list
Listing plugins with pattern ".*" ...
Configured: E = explicitly enabled; e = implicitly enabled
| Status: * = running on rabbit@my-rabbit
|/
[ ] rabbitmq_amqp1_0 3.8.10
[ ] rabbitmq_auth_backend_cache 3.8.10
[ ] rabbitmq_auth_backend_http 3.8.10
[ ] rabbitmq_auth_backend_ldap 3.8.10
[ ] rabbitmq_auth_backend_oauth2 3.8.10
[ ] rabbitmq_auth_mechanism_ssl 3.8.10
[ ] rabbitmq_consistent_hash_exchange 3.8.10
[E*] rabbitmq_delayed_message_exchange 3.8.9.0199d11c
[ ] rabbitmq_event_exchange 3.8.10
[ ] rabbitmq_federation 3.8.10
重启RabbitMQ (不用重启也能生效)
> docker restart rabbitmq
进入RabbitMQ管理界面查看插件是否成功生效


浙公网安备 33010602011771号