【问题标题】:WCF and MSMQ failure handlingWCF 和 MSMQ 故障处理
【发布时间】:2010-09-22 06:05:39
【问题描述】:

有人可以向我解释这 3 种处理传递失败消息的方法之间的区别吗?

  • 中毒队列服务
  • 死信队列服务
  • 使用响应服务来处理故障

我有“Programming WCF”,但我真的不明白什么时候你会使用其中一个而不是另一个,或者什么时候使用多个它们是有意义的。谢谢!

【问题讨论】:

    标签: c# .net wcf queue msmq


    【解决方案1】:

    死和毒是两个不同的概念。 有毒消息是可以从队列中读取的消息,但您的代码不知道如何处理它,因此您的代码会给出异常。如果这种情况持续一段时间,您希望将此消息放在不同的队列中,以便处理您的其他消息。 on MSDN 描述了一个很好的方法。

    死信是队列甚至不处理的消息。网络中断或接收 MSMQ 计算机已关闭。类似的东西。一段时间后,Windows 会自动将消息放入死队列。所以建议编写一个监控死队列的服务。

    【讨论】:

      【解决方案2】:

      有毒消息/死信消息队列用于将已确定为无法投递的消息放置在不再尝试投递的队列中。如果您可能想要手动查看失败的消息并在稍后处理它们,您可以这样做。当您希望通过一遍又一遍地重试来防止坏消息降低系统性能时,您可以使用这些类型的队列。

      另一方面,响应服务将用于通知发件人处理消息时出错。通常在这种情况下,您不打算手动处理错误消息,需要让发送消息的系统认为请求已被拒绝。

      请注意,这些不是排他性的。如果您使用的是队列,则消息序列化总是有可能发生足够的变化以破坏队列中的消息,在这种情况下,即使您使用的是响应服务,您仍可能希望拥有一个死信队列。

      【讨论】:

      • 我很欣赏这个答案,但这并不是我所问的。一方面,我想知道毒药和死信的区别。此外,我更多的是询问处理这些队列的服务,而不是队列本身。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      • 2011-04-07
      • 2016-01-04
      • 2014-05-30
      相关资源
      最近更新 更多