NServiceBus和“死信”队列?

时间:2011-10-21 20:22:42

标签: msmq nservicebus

所以,我是MSMQ和NServiceBus的新手。我玩了演示,并与NServiceBus一起工作。 (由于使用了新的建模工具,让我自己创建和运行比演示更容易!)

然后我去了我的同事并提出了我的计划(基于我的演示工作和我自己的模型)。其中两个人精通使用MSMQ,并开始问我如何处理“死信”。

我从未听说过“死信”。他们解释说,它是用于无法发送内容的消息的队列(因为另一端拒绝它们或者另一端不存在)。

我的同事关注的是,如果我们没有Dead Letter队列,那么我们如何阻止消息阻止队列? (如果队列是FIFO并且无法发送顶部消息,那么它会阻止其后面的其他消息吗?)

另一方面,如果我们有“死信”队列,他们如何管理? (我是否从NServiceBus获得一个事件,告诉我死信队列中有新消息?如何配置消息何时进入死信队列?我如何尝试重新发送死信消息?)

基本上,NServiceBus如何处理无法传递的消息?

1 个答案:

答案 0 :(得分:0)

通常,您也指定了一个错误队列,这是无法发送的消息。看看他们的MSMQ示例: http://docs.particular.net/nservicebus/msmq/transportconfig& http://docs.particular.net/nservicebus/msmq/connection-strings

<MsmqTransportConfig InputQueue="MyClient" ErrorQueue="error" 
                 NumberOfWorkerThreads="1" MaxRetries="5"/>

在此方案中,错误队列将与输入队列驻留在同一台计算机上。如果愿意,这也可以是远程队列。 MaxRetries指的是在将其放入错误队列之前发送的尝试次数。但是,您选择如何处理错误队列取决于您。