首页 > 代码库 > rabbitmq shovel插件
rabbitmq shovel插件
官网说明https://www.rabbitmq.com/shovel.html#management-status
启用shovel插件命令:
rabbitmq-plugins enable rabbitmq_shovel
rabbitmq-plugins enable rabbitmq_shovel_management
查看已经安装的插件
rabbitmq-plugins list
shovel 插件的使用存在 static 和 dynamic 两种形式,其主要差异如下
Static Shovels | Dynamic Shovels |
基于 broker 的配置文件进行定义 | 基于 broker 的 parameter 参数进行定义 |
需要重启宿主 broker 以便配置生效 | 可以在任意时间进行创建和删除,直接生效 |
更加通用:任何 queue 、exchange 或 binding 关系均可在启动时手动声明 | 更具有目标性:被 shovel 所使用的 queue 、exchange 和 binding 关系能够自动被声明(创建) |
1.为什么需要使用 shovel 插件?
答:当业务需要可靠且连续地将消息从一个 broker 的 queue 里搬运(转发)到另一个 broker 的 exchange 时(最终达到某个 queue 里 )使用;作为 source 的 queue 和作为 destination 的 exchange 可以位于同一个 broker 上(通常要求处于不同的 vhost 下),也可以位于不同的 broker 上。
2.使用 shovel 插件的好处?
答:shovel 基于 RabbitMQ 的 Erlang 客户端实现,且作为 built-in 插件被使用,故可以随 broker 的启动而自动启动;shovel 具有松耦合特性:通过该插件可以在分属不同管理域下的 broker 或 cluster 之间进行消息的搬运;shovel 具有 WAN 友好特性:基于 AMQP 0-9-1 协议实现,并设计成能够保证在不稳定网络场景下不丢失消息;shovel 具有高度可定制性:允许在 shovel 建立连接后,立即执行指定的 AMQP 方法进行定制化操作(例如声明 queue 的动作);
rabbitmq shovel插件