我们有2个Rabbitmq经纪人。
我们发布到Broker1的队列A,Broker2的队列B可以直接订阅队列A,这样就没有等待时间了,例如为它编写处理程序(使用@rabbitListener)然后发布到另一个队列。 / p>
我的问题是Broker2可以使用任何仲裁处理程序直接订阅broker1还是broker2(另一个队列)可以直接使用broker1中的队列数据?有可能吗?
如果是,如何通过spring-amqp实现它?
注意:两个RabbitMq代理在意义上是2个不同的Rabbitmq服务器
答案 0 :(得分:0)
答案 1 :(得分:0)
queue
无法从另一个队列使用。 RabbitMQ
中的工作单位为consumer
。有两种方法可以解决您的问题:
解决方案1 : 使用两个服务器创建RabbitMQ服务器集群。使用扇出交换将相同的消息路由到两个队列。
解决方案2 : 创建一个从队列1进行消费的使用者,然后将相同的消息重新排队到队列1和队列2。
如果您希望消息同时出现在两个队列中,请遵循解决方案1 。如果您要移动邮件(而不是复制邮件),请按照解决方案2 。
希望这会有所帮助!。
答案 2 :(得分:0)
我们有队列联合的概念,其中队列将消息传输到其他队列。联邦队列的主要目的是平衡RabbitMQ代理之间的负载。此处,使用者将连接到下游队列并从中接收消息,一旦下游队列为空,并且当使用者尝试使用来自下游队列的消息时,来自上游队列的消息将被传输到下游队列,以满足使用者的需求。 在这里请注意,消息仅按需发送到下游队列,如果消费者不要求消息,则消息将不会发送到下游。
与使用群集相比,联邦具有主要优势。