RabbitMQ镜像队列和交换

时间:2014-04-08 20:14:02

标签: rabbitmq rabbitmq-exchange

是否可以使用联合或铲子将一台服务器上的交换和队列的创建镜像到另一台服务器?

我在使用铲子和联合会时看到的所有示例都使用服务器上已存在的交换和队列。我想要做的是在服务器A上创建一个交换,并在服务器B上重新创建它,然后开始向它发送消息。

如果无法使用联合或铲子完成此操作而无需使用群集,则两台服务器之间的连接不一致,因此无法进行群集。

我在Windows上运行RabbitMQ。

2 个答案:

答案 0 :(得分:10)

您可以使用联合插件。

它支持交换exchangequeue联合,以便镜像您可以配置策略的队列和交换(使用管理控制台或命令行),例如使用以下参数:

Name: my_policy 
Pattern: ^mirr\.  <---- mirror exchanges and queues with prefix “mirr.” 
Definition: federation-upstream-set:all 

您可以将交换和队列的配置应用于:

enter image description here

  

模式策略支持正则表达式

这样,以前缀“mirr。”开头的每个新的或旧的交换或队列都将镜像到其他代理。

我认为这可以解决您的问题。

答案 1 :(得分:2)

不幸的是,以这种方式不可能这样做,因为连接是点对点连接。您必须将交换机与远程交换机链接,并且在拓扑中不能自动创建。

我过去也遇到过这个问题。我如何解决问题是在业务逻辑方面。如果需要“动态”新的Exchange / Queue,我的数据输入网关会识别这一点并在本地和远程交换机上创建新的交换和队列与连接,然后将消息发送到RabbitMQ。