rabbitMQ Shovel与Federation

Shovel

       shovel 是rabbitMQ的一个插件可以把源节点消息发送到目标节点。

优点

  • 松耦合:Shovel 可以在不同的 Broker和集群上传递消息,源节点和目标节点可以使用不同的用户和vhosts,不同的RabbitMQ版本。
  • 支持多个版本的AMQP协议
  • 支持广域网可以容忍网络断断续续保证可靠性。

原理

使用

首先开启插件

rabbitmq-plugins enable rabbitmq_shovel

rabbitmq-plugins enable rabbitmq_shovel_management 

静态方式:在 rabbitmq.config 配置文件中针对 Shove1 插件的配置

动态方式:

rabbitMQ Shovel与Federation_第1张图片

1.Prefetch count

允许允许Shovel内部缓存消息条数默认1000(未ack的数据)。

2.Auto-delete:

  • Never:一直执行。
  • After initial length transferred:Shovel启动时判断源节点query数量,向目标节点同步完这个数量的消息后自动删除Shovel。

Acknowledgement mode :表示在完成转发消息时的确认模式有三种

  1.   no ack 表示无须任何消息确认行为;
  2.   on publish 表示 Shovel 会把每 一 条消息发送到 目的端之后再向源端发送消息确认;
  3.   on confirm 表示 Shovel 会使用 publisher confmn 机制, 在收到目的端的消息确认之后再向源端发送消息确认。(默认值 官方推荐 选择其他值性能略有提升但是影响消息可靠性)

Reconnect delay

连接失效后几秒后重试默认5秒。

Add forwarding headers

设置为 true,则会在转发的消息内添加 x-shovelled 的 header属性。

Federation

Federation 可以在不同broker 中传递消息

优点:

  • 松耦合:Shovel 可以在不同的 Broker和集群上传递消息,源节点和目标节点可以使用不同的用户和vhosts,不同的RabbitMQ版本。
  • 支持广域网可以容忍网络断断续续保证可靠性。

使用

开启插件

rabbitmq-plugins enable rabbitmq_federation
rabbitmq-plugins enable rabbitmq_federation_management

rabbitMQ Shovel与Federation_第2张图片

 

 

 

 

 

 

你可能感兴趣的:(mq消息队列)