Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RabbitMQ镜像队列和交换_Rabbitmq_Rabbitmq Exchange - Fatal编程技术网

RabbitMQ镜像队列和交换

RabbitMQ镜像队列和交换,rabbitmq,rabbitmq-exchange,Rabbitmq,Rabbitmq Exchange,是否可以使用联合或铲子将一台服务器上的交换和队列的创建镜像到另一台服务器上 我看到的所有使用铲子和联邦的示例都使用服务器上已经存在的交换和队列。我要做的是在服务器A上创建一个exchange,并在服务器B上重新创建一个联盟或应用程序,然后开始向它发送消息 如果不使用集群就无法通过联合或其他方式实现这一点,则两台服务器之间的连接不一致,因此无法进行集群 我正在windows上运行RabbitMQ。不幸的是,这样做是不可能的,因为连接是点对点连接。您必须将exchange链接到远程exchange,

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

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

如果不使用集群就无法通过联合或其他方式实现这一点,则两台服务器之间的连接不一致,因此无法进行集群


我正在windows上运行RabbitMQ。

不幸的是,这样做是不可能的,因为连接是点对点连接。您必须将exchange链接到远程exchange,并且在拓扑中无法自动创建此链接


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

您可以使用联合插件

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

Name: my_policy 
Pattern: ^mirr\.  <---- mirror exchanges and queues with prefix “mirr.” 
Definition: federation-upstream-set:all 
名称:我的保单

图案:^mirr\。你需要一个双向镜像吗?顺便说一句,虽然这是一个很好的解决方案,但我会从文档中添加以下内容
绑定是异步发送到上游的-因此添加或删除绑定的效果只能保证最终看到
是的,谢谢@zaq178miam!这与带集群的镜子有很大区别!联合队列实际上是一种全新的选择@OP:您使用的RabbitMQ版本是什么?谢谢Gas,看起来我买错了RabbingMQ书籍:)不客气:)!也许你正在读的书有点旧了。