使用NServiceBus中的简单Pub / Sub,我知道如果我的订阅者应用程序没有运行,那么发布的消息将在队列中累积,直到它们可以被处理。但是如果整个机器停机,它们会在哪里累积?由于邮件甚至无法传递到我的订阅者队列,是否有一些队列位于发布者身上?我希望能够在订阅者计算机关闭时查看发布者正在等待的消息。
有没有办法看到它们?
答案 0 :(得分:8)
Msmq是NServiceBus的默认传输,它使用存储转发模式来传递消息。这意味着当您向另一台计算机发送邮件时,它首先“存储”在发送邮件的计算机上,然后“转发”到收件人计算机。这意味着到达无法访问的计算机的传出消息将存储在发送计算机上,直到它们可以传递。 Msmq使用“传出队列”术语来临时存储正在传递的消息。如果接收机器关闭,则消息将位于“传出队列”中,直到可以传送。如果您查看“消息队列”MMC插件,您将找到一个名为“传出队列”的文件夹,如果订阅者关闭,这是您发布的消息将显示的位置。
IMO,关于Msmq信息的最佳资源是John Breakwells博客: http://blogs.msdn.com/b/johnbreakwell/archive/tags/msmq/
有关NServiceBus与Msmq结合的更多信息:
http://docs.particular.net/nservicebus/msmq/
希望这有帮助!