RabbitMQ supports plugins, which extend functionality in various ways: supporting more protocols, system status monitoring, additional AMQP 0-9-1 exchange types, node federation, etc. Many features are implemented as plugins and are provided along with core releases.
For more information, please refer to: How to use RabbitMQ Plugins.
Select any node of the RabbitMQ instance, enter the Pod, and execute the following command to view the supported and enabled status of the plugins:
By default, the plugins rabbitmq_peer_discovery_k8s
, rabbitmq_prometheus
, rabbitmq_management
, and their related plugins are enabled upon instance creation.
Below is the list of plugins included in the image along with their descriptions:
Plugin Name | Description |
---|---|
rabbitmq_amqp1_0 | A plugin for supporting the AMQP 1.0 protocol that allows AMQP 1.0 clients to connect to RabbitMQ |
rabbitmq_auth_backend_cache | A plugin for caching authentication results, it can improve RabbitMQ's authentication performance and reduce requests to backend authentication services |
rabbitmq_auth_backend_http | A plugin for supporting HTTP authentication, it allows RabbitMQ users to be verified via an HTTP service |
rabbitmq_auth_backend_ldap | A plugin for supporting LDAP authentication, it allows RabbitMQ users to be verified via an LDAP service |
rabbitmq_auth_backend_oauth2 | A plugin for supporting OAuth 2.0 authentication, it allows RabbitMQ users to be verified via an OAuth 2.0 service |
rabbitmq_auth_mechanism_ssl | A plugin for supporting SSL authentication, it allows RabbitMQ users to be verified using SSL certificates |
rabbitmq_consistent_hash_exchange | A plugin for implementing consistent hashing, it allows you to create a special exchange that computes hash values based on message routing keys or headers, then sends the messages to the corresponding queues |
rabbitmq_delayed_message_exchange | A plugin for delayed messaging, it allows you to create a special exchange that sets a delay based on message headers, temporarily storing messages in memory or on disk until the delay expires, and then sends the messages to the corresponding queues |
rabbitmq_event_exchange | A plugin for publishing RabbitMQ events, it allows you to create a special exchange that sends various RabbitMQ events, such as creation, deletion, and modification of connections, channels, queues, users, permissions, etc., to corresponding queues, supporting multiple event types and filtering options |
rabbitmq_federation | A plugin for connecting multiple RabbitMQ instances, it allows you to create federations that forward messages from one RabbitMQ instance to another |
rabbitmq_federation_management | A plugin for managing RabbitMQ federation that enables you to view and configure RabbitMQ federations via a web interface |
rabbitmq_jms_topic_exchange | A plugin for supporting JMS topics, it allows you to create a special exchange that routes messages based on the JMSDestination header of the messages |
rabbitmq_management | A plugin for managing and monitoring RabbitMQ, it provides a web interface that allows you to view the status, configuration, statistics, and logs of RabbitMQ, as well as perform some operations |
rabbitmq_management_agent | A plugin for supporting RabbitMQ management, it provides an agent that reports various information, such as the usage of memory, disk, connections, channels, queues, etc., from RabbitMQ nodes to the management plugin, and allows the management plugin to send various commands to RabbitMQ nodes |
rabbitmq_mqtt | A plugin for supporting the MQTT protocol, it allows MQTT clients to connect to RabbitMQ, supporting various features such as QoS, retained messages, last will messages, topic filtering, etc. |
rabbitmq_peer_discovery_aws | A plugin for supporting AWS node discovery, it can automatically discover and join RabbitMQ clusters in AWS environments, supporting various AWS services |
rabbitmq_peer_discovery_common | A plugin for supporting general node discovery, it provides some basic functionalities such as node registration, deregistration, querying, etc., and can be used by other node discovery plugins |
rabbitmq_peer_discovery_consul | A plugin for supporting Consul node discovery, it can automatically discover and join RabbitMQ clusters in Consul environments |
rabbitmq_peer_discovery_etcd | A plugin for supporting etcd node discovery, it can automatically discover and join RabbitMQ clusters in etcd environments |
rabbitmq_peer_discovery_k8s | A plugin for supporting Kubernetes node discovery; it allows you to automatically discover and join RabbitMQ clusters in Kubernetes environments |
rabbitmq_prometheus | A plugin for supporting Prometheus monitoring; it allows you to collect and display various RabbitMQ metrics using Prometheus |
rabbitmq_random_exchange | A plugin for implementing random routing, it allows you to create a special exchange that randomly sends messages to one or more queues |
rabbitmq_recent_history_exchange | A plugin for implementing recent history routing, it allows you to create a special exchange that sends messages to one or more queues that have recently received messages |
rabbitmq_sharding | A plugin for implementing sharding, it allows you to create a special queue that distributes messages across multiple sub-queues |
rabbitmq_shovel | A plugin for forwarding messages, it allows you to define rules to forward messages from one queue or exchange to another |
rabbitmq_shovel_management | A plugin for managing RabbitMQ shovel, it allows you to view and configure RabbitMQ shovel via a web interface |
rabbitmq_stomp | A plugin for supporting the STOMP protocol, it allows you to connect to RabbitMQ using STOMP clients, supporting various features |
rabbitmq_stream | A plugin for supporting stream protocols, it allows you to create a special queue for storing and transmitting large volumes of ordered messages |
rabbitmq_stream_management | A plugin for managing RabbitMQ streams, it allows you to view and configure RabbitMQ streams via a web interface |
rabbitmq_top | A plugin for viewing RabbitMQ performance, it provides a command-line interface that allows you to view the usage of various RabbitMQ resources |
rabbitmq_tracing | A plugin for tracing RabbitMQ messages, it can create traces that record the content and properties of RabbitMQ messages to files or logs |
rabbitmq_trust_store | A plugin for managing RabbitMQ's trust store, it allows you to store and update SSL certificates in RabbitMQ |
rabbitmq_web_dispatch | A plugin for supporting RabbitMQ's web services, it provides a framework for defining and handling HTTP requests within RabbitMQ |
rabbitmq_web_mqtt | A plugin for supporting MQTT over WebSockets, it allows you to connect to RabbitMQ using WebSocket clients |
rabbitmq_web_mqtt_examples | A plugin for demonstrating MQTT over WebSockets, providing several examples |
rabbitmq_web_stomp | A plugin for supporting STOMP over WebSockets, it allows you to connect to RabbitMQ using WebSocket clients |
rabbitmq_web_stomp_examples | A plugin for demonstrating STOMP over WebSockets, providing several examples |
When you need to enable or disable plugins already included in the image, you can update the relevant fields in the instance's YAML file. Taking rabbitmq_shovel
as an example:
When you need to enable custom plugins or community plugins that are not included in the image, you cannot directly enable them by editing the additionalPlugins in the YAML. Instead, you must download them into the container before starting the pod.
rabbitmq-plugins list
to check if the plugin is enabled.Sample YAML is shown below:
rabbitmq-plugins list
to check if the plugin is enabled.Sample YAML is shown below: