是否可以使用联邦或铲子将一台服务器上的交换和队列的创建镜像到另一台服务器?
我见过的所有使用铲子和联邦的例子都使用服务器上已经存在的交换和队列。我想要做的是在服务器 A 上创建一个交换,并在服务器 B 上重新创建一个联合或铲子,然后开始向它发送消息。
如果这不能通过联合或铲子完成,那么无论如何都可以在不使用集群的情况下实现这一点,那么两台服务器之间的连接是不一致的,因此集群是不可能的。
我在 Windows 上运行 RabbitMQ。
是否可以使用联邦或铲子将一台服务器上的交换和队列的创建镜像到另一台服务器?
我见过的所有使用铲子和联邦的例子都使用服务器上已经存在的交换和队列。我想要做的是在服务器 A 上创建一个交换,并在服务器 B 上重新创建一个联合或铲子,然后开始向它发送消息。
如果这不能通过联合或铲子完成,那么无论如何都可以在不使用集群的情况下实现这一点,那么两台服务器之间的连接是不一致的,因此集群是不可能的。
我在 Windows 上运行 RabbitMQ。
您可以使用联合插件。
它支持交换交换和队列联合,为了镜像队列和交换,您可以配置策略(使用管理控制台或命令行),例如使用以下参数:
Name: my_policy
Pattern: ^mirr\. <---- mirror exchanges and queues with prefix “mirr.”
Definition: federation-upstream-set:all
您可以将配置应用于交换和队列,如下所示:
模式策略支持正则表达式
这样,每个以前缀“mirr”开头的新旧交换或队列。将镜像到其他代理。
我认为这可以解决您的问题。
不幸的是,以这种方式无法做到这一点,因为连接是点对点连接。您必须将交换与远程交换链接起来,并且在您的拓扑中这不能自动创建。
我过去也有这个问题。我如何解决这个问题是在业务逻辑方面。如果需要“即时”新的 Exchange/Queue,我的数据输入网关会识别到这一点,并在将消息发送到 RabbitMQ 之前,在本地和远程交换上创建新的交换和队列与连接。