對於NServiceBus中的簡單Pub/Sub,我知道如果我的訂閱者應用程序沒有運行,那麼發佈的消息將會積累在隊列中,直到它們可以被處理。但是如果整臺機器停機,它們在哪裏積累呢?由於該消息甚至無法傳遞給我的訂閱者隊列,因此他們是否有一些隊列位於發佈者?我希望能夠看到用戶機器關閉時發佈商正在等待哪些消息。NServiceBus:如果我的訂戶機器已關機,發佈的消息會發生什麼?
有什麼方法可以看到它們嗎?
對於NServiceBus中的簡單Pub/Sub,我知道如果我的訂閱者應用程序沒有運行,那麼發佈的消息將會積累在隊列中,直到它們可以被處理。但是如果整臺機器停機,它們在哪裏積累呢?由於該消息甚至無法傳遞給我的訂閱者隊列,因此他們是否有一些隊列位於發佈者?我希望能夠看到用戶機器關閉時發佈商正在等待哪些消息。NServiceBus:如果我的訂戶機器已關機,發佈的消息會發生什麼?
有什麼方法可以看到它們嗎?
Msmq,NServiceBus的默認傳輸,使用存儲和轉發模式來傳遞消息。這意味着當你發送消息到另一臺機器時,它首先被「存儲」在發送消息的機器上,然後「轉發」給收件機。這意味着發送給不可訪問機器的消息將被存儲在發送機器上,直到它們可以被傳送。 Msmq使用「傳出隊列」的術語臨時存儲正在傳遞的消息。如果接收機關閉,則消息將位於「傳出隊列」中,直到可以傳遞。如果你看看「消息隊列」MMC插件,你會發現一個名爲「Outgoing Queues」的文件夾,這是你的發佈消息在用戶關閉時顯示的位置。
IMO,對MSMQ信息的最佳資源是約翰Breakwells博客:在NServiceBus http://blogs.msdn.com/b/johnbreakwell/archive/tags/msmq/
更多信息與MSMQ結合:
http://docs.particular.net/nservicebus/msmq/
希望這有助於!
正如澄清一點:問題是關於NServiceBus。恰巧,NServiceBus使用的默認傳輸是MSMQ。 http://www.nservicebus.com/Msmq.aspx – Nathan 2010-08-19 21:01:58
絕對正確,答案更新..謝謝! – 2010-08-20 06:29:43