RabbitMq中每个消息使用者的单独死信队列

时间:2017-03-09 08:14:02

标签: rabbitmq spring-rabbit rabbitmq-exchange spring-rabbitmq

我有一个使用RabbitMQ构建的发布 - 订阅方案。存在由发布者发送消息的交换,并且订阅该交换的任何消费者在其各自的队列中接收这些消息。这是一个扇出场景,其中有一个生产者,但有多个消费者。

现在我愿意将死信队列集成到系统中,以便以后可以处理被拒绝的消息。我的问题是

1)我是否应该为每个消费者配置一个单独的死信队列,或者应该只有一个来处理来自所有消费者的所有被拒绝的消息?

2)如果两者都可能,哪一个更好?

3)由于涉及多方,生产者和多个消费者,谁应该处理死信。是生产者还是每个消费者都会以自己的方式处理自己的死信?

4)只是为了确认死信队列应始终配置消费者队列而不是生产者队列或生产者交换。

1 个答案:

答案 0 :(得分:1)

答案完全取决于您的要求。

  1. 这取决于您处理死信的方式 - 如果您使用单个队列,则可以在x-death标题中找到原始信息。
  2. "更好的"是主观的 - 它完全取决于你想做什么。
  3. 再次,它取决于您和您的应用程序设计。
  4. > ...producer queue...制作人员不了解队列 - 只有交换和(通常)路由密钥。所以,是的,它通常是消费者配置。