所以,我是MSMQ和NServiceBus的新手。我尝试了一下演示,并得到了一个使用NServiceBus的工作场景。(多亏了新的建模工具,让我自己启动和运行比遵循演示更容易!)
然后,我去向我的同事展示了我的计划(基于我与演示和我自己的模型的工作)。他们中的两个精通MSMQ的使用,并开始问我关于如何处理“死信”的问题。
我从来没有听说过“死信”。他们解释说,它是用于消息的队列,不能发送东西(要么是因为另一端拒绝了它们,要么是因为另一端不在那里)。
我的同事担心的是,如果我们没有死信队列,那么我们如何阻止消息阻塞队列?(如果队列是FIFO,并且顶部的消息不能被发送,那么它会阻塞它后面的其他消息,对吗?)
另一方面,如果我们有“死信”队列,它们是如何管理的?(我是否会收到来自NServiceBus的事件,告诉我有新消息在死信队列中?如何配置消息何时进入死信队列?如何尝试重新发送死信消息?)
那么基本上,NServiceBus是如何处理无法投递的消息的?
发布于 2011-10-22 04:44:01
通常,您还可以指定一个错误队列,无法发送的消息将放在该队列中。看看他们的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指的是在被放入错误队列之前尝试发送的次数。但是,如何选择处理错误队列取决于您。
https://stackoverflow.com/questions/7854873
复制相似问题