spring - RabbitMQ - 多个消费者如何使用来自单个队列的相同消息?

标签 spring rabbitmq spring-amqp spring-rabbit

大多数 RabbitMQ 文档似乎都集中在循环法上,即单个消息由单个消费者使用。我有一个要求,希望从单个队列接收相同的消息给多个订阅的消费者。

下面是我的示例消费者代码。这里有 2 个监听器在收听同一个队列,但只有一个消费者收到消息。我如何配置它以便将相同的消息传递给两个消费者? (消费者 1 和消费者 2)。 任何帮助将不胜感激。

@Component
public class Consumer1 {
    @RabbitListener(queues="test.queue.jsa")
    public void recievedMessage(Employee msg) {
          System.out.println("Recieved Message: " + msg);
    }
}

@Component
public class Consumer2 {
    @RabbitListener(queues="test.queue.jsa")
    public void recievedMessage(Employee msg) {
          System.out.println("Consumed Message: " + msg);
    }
}

最佳答案

这是不可能的;它只是行不通。每个消费者都需要自己的队列;使用扇出交换。

关于spring - RabbitMQ - 多个消费者如何使用来自单个队列的相同消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53297531/

相关文章:

spring - Zuul 为多个 zuul 路由实现多个 ZuulFallbackProvider

java - 如果 Web 服务器闲置一周左右,Spring bean 会发生什么情况?

ssl - Windows 中的 RabbitMQ SSL 支持

python - 是否可以在 Python 中将 RabbitMQ 直接回复功能与 Pika 生成器使用者一起使用?

java - RabbitMQ basic.get 和确认

java - 如何在 Spring-AMQP 中使用 Jackson2JsonMessageConverter 处理内容类型 null

java - 在 Spring MVC 中使用 openblox 直径服务器时出错?

支持事务关联的 Java 或 Spring async TaskExeuctor?

java - 当队列被删除时,SimpleMessageListenerContainer 上的 Spring AMQP 通知/事件

python - 不同服务器上的 Django 和 celery ,一旦任务完成, celery 能够向 Django 发送回调