繁体   English   中英

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

[英]MassTransit with RabbitMQ: When is a message moved to the error queue

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

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

谢谢

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

要添加到Travis的答案,在我的开发过程中,我发现了一些消息进入错误队列的其他原因:

  1. 发布的消息类型没有消费者
  2. SAGA和消费者期待相同的具体消息类型。 即使您尝试使用“接受”和“.Selected”进行区分,也不应将SAGA和消费者编程为接收相同的消息类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM