RabbitMQ 支持插件,通过多种方式扩展功能:支持更多协议、系统状态监控、额外的 AMQP 0-9-1 交换类型、节点联邦等。许多功能以插件形式实现,并随核心版本提供。
更多信息,请参考:如何使用 RabbitMQ 插件。
选择 RabbitMQ 实例的任意节点,进入 Pods,执行以下命令以查看插件的支持和启用状态:
默认情况下,在实例创建时,插件 rabbitmq_peer_discovery_k8s
、rabbitmq_prometheus
、rabbitmq_management
及其相关插件是启用的。
以下是镜像中包含的插件列表及其描述:
插件名称 | 描述 |
---|---|
rabbitmq_amqp1_0 | 支持 AMQP 1.0 协议的插件,允许 AMQP 1.0 客户端连接到 RabbitMQ |
rabbitmq_auth_backend_cache | 用于缓存身份验证结果的插件,提高 RabbitMQ 的身份验证性能,并减少对后端身份验证服务的请求 |
rabbitmq_auth_backend_http | 支持 HTTP 身份验证的插件,允许通过 HTTP 服务验证 RabbitMQ 用户 |
rabbitmq_auth_backend_ldap | 支持 LDAP 身份验证的插件,允许通过 LDAP 服务验证 RabbitMQ 用户 |
rabbitmq_auth_backend_oauth2 | 支持 OAuth 2.0 身份验证的插件,允许通过 OAuth 2.0 服务验证 RabbitMQ 用户 |
rabbitmq_auth_mechanism_ssl | 支持 SSL 身份验证的插件,允许使用 SSL 证书验证 RabbitMQ 用户 |
rabbitmq_consistent_hash_exchange | 实现一致性哈希的插件,允许创建特殊的交换,基于消息路由键或头部计算哈希值,然后将消息发送到相应的队列 |
rabbitmq_delayed_message_exchange | 支持延迟消息的插件,允许创建特殊的交换,根据消息头设置延迟,临时将消息存储在内存或磁盘中,直到延迟过期,然后将消息发送到相应的队列 |
rabbitmq_event_exchange | 发布 RabbitMQ 事件的插件,允许创建特殊的交换,将各类 RabbitMQ 事件(如连接、通道、队列、用户、权限的创建、删除和修改等)发送到对应队列,支持多种事件类型和过滤选项 |
rabbitmq_federation | 连接多个 RabbitMQ 实例的插件,允许创建联邦,将消息从一个 RabbitMQ 实例转发到另一个 |
rabbitmq_federation_management | 管理 RabbitMQ 联邦的插件,允许通过 Web 界面查看和配置 RabbitMQ 联邦 |
rabbitmq_jms_topic_exchange | 支持 JMS 主题的插件,允许创建特殊的交换,根据消息的 JMSDestination 头部路由消息 |
rabbitmq_management | 管理和监控 RabbitMQ 的插件,提供 Web 界面,允许查看 RabbitMQ 的状态、配置、统计信息和日志,以及执行一些操作 |
rabbitmq_management_agent | 支持 RabbitMQ 管理的插件,提供代理,报告各种信息,如内存、磁盘、连接、通道、队列等的使用情况,并允许管理插件向 RabbitMQ 节点发送各种命令 |
rabbitmq_mqtt | 支持 MQTT 协议的插件,允许 MQTT 客户端连接到 RabbitMQ,支持多种特性,如 QoS、保留消息、遗嘱消息、主题过滤等 |
rabbitmq_peer_discovery_aws | 支持 AWS 节点发现的插件,可以自动发现并加入 AWS 环境中的 RabbitMQ 集群,支持各种 AWS 服务 |
rabbitmq_peer_discovery_common | 支持通用节点发现的插件,提供一些基本功能,如节点注册、注销、查询等,可供其他节点发现插件使用 |
rabbitmq_peer_discovery_consul | 支持 Consul 节点发现的插件,可以自动发现并加入 Consul 环境中的 RabbitMQ 集群 |
rabbitmq_peer_discovery_etcd | 支持 etcd 节点发现的插件,可以自动发现并加入 etcd 环境中的 RabbitMQ 集群 |
rabbitmq_peer_discovery_k8s | 支持 Kubernetes 节点发现的插件;允许自动发现并加入 Kubernetes 环境中的 RabbitMQ 集群 |
rabbitmq_prometheus | 支持 Prometheus 监控的插件;允许使用 Prometheus 收集和显示各种 RabbitMQ 指标 |
rabbitmq_random_exchange | 实现随机路由的插件,允许创建特殊的交换,随机将消息发送到一个或多个队列 |
rabbitmq_recent_history_exchange | 实现最近历史路由的插件,允许创建特殊的交换,将消息发送到最近接收消息的一个或多个队列 |
rabbitmq_sharding | 实现分片的插件,允许创建特殊的队列,在多个子队列之间分发消息 |
rabbitmq_shovel | 转发消息的插件,允许定义规则,将消息从一个队列或交换转发到另一个 |
rabbitmq_shovel_management | 管理 RabbitMQ 铲子的插件,允许通过 Web 界面查看和配置 RabbitMQ 铲子 |
rabbitmq_stomp | 支持 STOMP 协议的插件,允许使用 STOMP 客户端连接到 RabbitMQ,支持各种特性 |
rabbitmq_stream | 支持流协议的插件,允许创建特殊的队列,用于存储和传输大量有序消息 |
rabbitmq_stream_management | 管理 RabbitMQ 流的插件,允许通过 Web 界面查看和配置 RabbitMQ 流 |
rabbitmq_top | 查看 RabbitMQ 性能的插件,提供命令行界面,使您能够查看各种 RabbitMQ 资源的使用情况 |
rabbitmq_tracing | 跟踪 RabbitMQ 消息的插件,可以创建跟踪,记录 RabbitMQ 消息的内容和属性到文件或日志中 |
rabbitmq_trust_store | 管理 RabbitMQ 信任存储的插件,允许在 RabbitMQ 中存储和更新 SSL 证书 |
rabbitmq_web_dispatch | 支持 RabbitMQ Web 服务的插件,提供框架,用于定义和处理 RabbitMQ 内的 HTTP 请求 |
rabbitmq_web_mqtt | 支持通过 WebSockets 的 MQTT 的插件,允许使用 WebSocket 客户端连接到 RabbitMQ |
rabbitmq_web_mqtt_examples | 演示通过 WebSockets 的 MQTT 的插件,提供多个示例 |
rabbitmq_web_stomp | 支持通过 WebSockets 的 STOMP 的插件,允许使用 WebSocket 客户端连接到 RabbitMQ |
rabbitmq_web_stomp_examples | 演示通过 WebSockets 的 STOMP 的插件,提供多个示例 |
当需要启用或禁用已包含在镜像中的插件时,可以更新实例 YAML 文件中的相关字段。以 rabbitmq_shovel
为例:
当需要启用未包含在镜像中的自定义插件或社区插件时,无法通过直接编辑 YAML 中的 additionalPlugins 来启用它们。相反,必须在启动 Pods 之前下载它们到容器中。
rabbitmq-plugins list
检查插件是否启用。下面示例 YAML 如下:
rabbitmq-plugins list
检查插件是否启用。下面示例 YAML 如下: