RabbitMQ - Install rabbitmq-delayed-message-exchange.ez file on Linux

At https://www.rabbitmq.com/community-plugins.html, select rabbitmq-delayed-message-exchange and download the rabbitmq-delayed-message-exchange-<version>.ez file. Place the rabbitmq-delayed-message-exchange-<version>.ez file in the /usr/lib/rabbitmq/plugins directory.

Ensure the file is owned by the rabbitmq users and rabbitmq group.

chown rabbitmq /usr/lib/rabbitmq/plugins/rabbitmq_delayed_message_exchange-*.ez
chgrp rabbitmq /usr/lib/rabbitmq/plugins/rabbitmq_delayed_message_exchange-*.ez

 

Use the rabbitmq-plugins enable command to enable the plugin. There is no need to restart the RabbitMQ service.

rabbitmq-plugins enable rabbitmq_delayed-message-exchange

 

The rabbitmq-plugins list command should now show that the rabbitmq-delayed-message-exchange plugin is enabled.

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

 

Now when creating an exchange, you can set the type to x-delayed-message with the x-delayed-type argument which would contain a value such as direct or topic of fanout.

 

Let's say you have a Java app that is the producer putting messages onto an exchange. The producer can define the x-delay header, such as 10000 milliseconds in this example.

Map<String, Object> headers = new HashMap<String, Object>();

headers.put("x-delay", 10000);

channel.basicPublish(exchange, routingkey, mandatory, MessageProperties.PERSISTENT_TEXT_PLAIN, message.getBytes());

 




Did you find this article helpful?

If so, consider buying me a coffee over at Buy Me A Coffee

Add a Comment




We will never share your name or email with anyone. Enter your email if you would like to be notified when we respond to your comment.





Please enter cc01e in the box below so that we can be sure you are a human.




Comments

Web design by yours truely - me, myself, and I   |   jeremy.canfield@freekb.net   |