繁体   English   中英

WCF和MSMQ故障处理

[英]WCF and MSMQ failure handling

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

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

我有“编程WCF”,但我真的不明白你何时会使用其中一个,或者什么时候才能使用其中一个以上。 谢谢!

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

死信是一个甚至不由队列处理的消息。 网络中断或接收MSMQ计算机已关闭。 这样的事情。 一段时间后,Windows会自动将消息放入死队列。 因此,建议编写一个监视死队列的服务。

毒性消息/死信消息队列用于将已被确定为无法传递的消息放入不会再尝试传递它们的队列中。 如果您可能希望手动查看失败的消息并在以后处理它们,则可以执行此操作。 当您希望通过反复重试来防止错误消息降低系统性能时,可以使用这些类型的队列。

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

请注意,这些并不是唯一的。 如果您正在使用队列,则消息序列化总是有可能更改到足以中断队列中的消息,在这种情况下,即使您使用响应服务,您仍可能希望拥有死信队列。

暂无
暂无

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

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