使用RabbitMQ的MassTransit:何时将消息移动到错误队列

Sha*_*der 13 masstransit message-queue rabbitmq

我正在使用RabbitMQ 3.0.2版本,我在错误队列中看到接近1000条消息.我想知道

  1. 消息在什么时候被移动到错误队列?
  2. 有没有办法知道为什么某个消息被移动到错误队列?
  3. 有没有办法将消息从错误队列移动到正常队列?

谢谢

Tra*_*vis 8

  1. a)他们无法反序列化或b)消费者抛出异常处理该消息五次
  2. 不是......如果您查看队列中的消息,有效负载标头可能包含注释,但我认为我们没有这样做.如果您打开登录(NLog,log4net等),您应该能够在日志中看到异常.您必须在此时关联消息ID以确定原因.
  3. MassTransit没有内置方式.主要是因为似乎没有一种很好的通用方法来处理这个问题.每个人都想要一些过程.Dru确实创建了一个BusDriver应用程序(在主MT源代码库中),可用于将消息移回有问题的交换机.这种默认行为是存在的,所以如果你没有放入基础设施来处理它,你至少知道事情已经失败了.