需要spring rabbitmq向所有客户发送消息-禁用一个队列的循环
我有几个队列,需要对其中一个队列执行以下操作:需要spring rabbitmq向所有客户发送消息-禁用一个队列的循环,spring,tomcat,rabbitmq,Spring,Tomcat,Rabbitmq,我有几个队列,需要对其中一个队列执行以下操作: 生产者应向该队列发送消息,但所有使用者均应接收该消息。因此,如果这个队列中有5个spring侦听器,那么每个侦听器都应该接收消息,而不是生产者。我这样做是因为我有一个tomcat集群和rabbitmq异步消息,如果我从工作者那里得到响应,我不知道如何将它分派到正确的tomcat节点。因此,我决定将所有worker回复广播到所有tomcat节点。每个tomcat集群节点侦听相同的输出队列。然后,如果它是一个正确的tomcat实例,它将被处理,所有其他
生产者应向该队列发送消息,但所有使用者均应接收该消息。因此,如果这个队列中有5个spring侦听器,那么每个侦听器都应该接收消息,而不是生产者。我这样做是因为我有一个tomcat集群和rabbitmq异步消息,如果我从工作者那里得到响应,我不知道如何将它分派到正确的tomcat节点。因此,我决定将所有worker回复广播到所有tomcat节点。每个tomcat集群节点侦听相同的输出队列。然后,如果它是一个正确的tomcat实例,它将被处理,所有其他副本都将丢失,这样就可以了。如何实施?如何让tomcat端的消费者在同一时间收到相同的消息?好的,在这里找到了解决方案: 在rabbitmq中不可能做到这一点,需要为每个使用者创建两个队列。这是一个XY问题。您应该使用
直接
交换,并让每个节点使用不同的路由密钥进行订阅。然后,在发送消息时,只需将reply to
标题设置为,并使用该标题确定响应的路由键。使用fanout
交换和删除消息是你的建议——这是浪费。消息被发送到交换机。从队列接收消息。队列订阅交换(交换也订阅交换)。