rabbitmq安装启用延迟队列插件

- 服务器应用

本篇文章介绍单节点启动的 rabbitmq 如何安装启用延迟队列插件。

下载延迟队列插件

项目地址:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange
下载地址:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.9.0/rabbitmq_delayed_message_exchange-3.9.0.ez
注意下载时要选择和rabbitmq兼容的插件版本。



查看rabbitmq 插件安装目录

root@f2bcf9b78273:/root# rabbitmq-plugins directories -s
Plugin archives directory: /opt/rabbitmq/plugins
Plugin expansion directory: /var/lib/rabbitmq/mnesia/rabbit@f2bcf9b78273-plugins-expand
Enabled plugins file: /etc/rabbitmq/enabled_plugins
root@f2bcf9b78273:/root#

Plugin archives directory:为插件的归档目录(未解压的ez文件),要安装新的插件的时候,需要将插件的归档文件放置在这个目录中。
Plugin expansion directory:为已经解压的插件文件目录,当插件归档文件被解压后,它们的文件会被放置在这个目录中。这些解压后的文件是系统实际运行所需的,包括插件的代码、库文件等。
Enabled plugins file:这个文件包含了当前启用的插件列表。



查看所有 rabbitmq 插件

root@f2bcf9b78273:/root# rabbitmq-plugins list
Listing plugins with pattern ".*" ...
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status: * = running on rabbit@f2bcf9b78273
 |/
[  ] rabbitmq_amqp1_0                  3.9.5
[  ] rabbitmq_auth_backend_cache       3.9.5
[  ] rabbitmq_auth_backend_http        3.9.5
[  ] rabbitmq_auth_backend_ldap        3.9.5
[  ] rabbitmq_auth_backend_oauth2      3.9.5
[  ] rabbitmq_auth_mechanism_ssl       3.9.5
[  ] rabbitmq_consistent_hash_exchange 3.9.5
[  ] rabbitmq_event_exchange           3.9.5
[  ] rabbitmq_federation               3.9.5
[  ] rabbitmq_federation_management    3.9.5
[  ] rabbitmq_jms_topic_exchange       3.9.5
[E*] rabbitmq_management               3.9.5
[e*] rabbitmq_management_agent         3.9.5
[  ] rabbitmq_mqtt                     3.9.5
[  ] rabbitmq_peer_discovery_aws       3.9.5
[  ] rabbitmq_peer_discovery_common    3.9.5
[  ] rabbitmq_peer_discovery_consul    3.9.5
[  ] rabbitmq_peer_discovery_etcd      3.9.5
[  ] rabbitmq_peer_discovery_k8s       3.9.5
[E*] rabbitmq_prometheus               3.9.5
[  ] rabbitmq_random_exchange          3.9.5
[  ] rabbitmq_recent_history_exchange  3.9.5
[  ] rabbitmq_sharding                 3.9.5
[  ] rabbitmq_shovel                   3.9.5
[  ] rabbitmq_shovel_management        3.9.5
[  ] rabbitmq_stomp                    3.9.5
[  ] rabbitmq_stream                   3.9.5
[  ] rabbitmq_stream_management        3.9.5
[  ] rabbitmq_top                      3.9.5
[  ] rabbitmq_tracing                  3.9.5
[  ] rabbitmq_trust_store              3.9.5
[e*] rabbitmq_web_dispatch             3.9.5
[  ] rabbitmq_web_mqtt                 3.9.5
[  ] rabbitmq_web_mqtt_examples        3.9.5
[  ] rabbitmq_web_stomp                3.9.5
[  ] rabbitmq_web_stomp_examples       3.9.5
root@f2bcf9b78273:/root#

过滤延迟队列插件,可以看到目前是没有的。

root@f2bcf9b78273:/root# rabbitmq-plugins list |grep delayed
root@f2bcf9b78273:/root#




将延迟队列插件ez文件复制到插件归档目录中

root@f2bcf9b78273:/root# cp rabbitmq_delayed_message_exchange-3.9.0.ez /opt/rabbitmq/plugins/

再次查看插件列表,可以看到已经有了

root@f2bcf9b78273:~# rabbitmq-plugins list |grep delay
[  ] rabbitmq_delayed_message_exchange 3.9.0
root@f2bcf9b78273:~#




启用延迟队列插件

root@f2bcf9b78273:/root# rabbitmq-plugins enable rabbitmq_delayed_message_exchange
Enabling plugins on node rabbit@f2bcf9b78273:
rabbitmq_delayed_message_exchange
The following plugins have been configured:
  rabbitmq_delayed_message_exchange
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_prometheus
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@f2bcf9b78273...
The following plugins have been enabled:
  rabbitmq_delayed_message_exchange

started 1 plugins.
root@f2bcf9b78273:/root#
root@f2bcf9b78273:/root# rabbitmq-plugins list |grep delaye
[E*] rabbitmq_delayed_message_exchange 3.9.0
root@f2bcf9b78273:/root#




确认插件生效

创建新的 exchange 时,可以发现多了个名为 x-delayed-message 的类型。
2024-04-02T15:26:47.png