2011-06-20 92 views
9

我找一個排隊系統內有多個不同的用戶可以拉斷的項目集中隊列。這些消息將非常輕量級,但我需要的是持久且速度非常快的消息,因爲消息量會很大。 MSMQ有點沉重,我正在尋找光線。建議?.NET快速持久隊列

+0

數據庫表(用適當的鎖定機制)? –

+0

我們正在使用一個數據庫表。但是,它相當緩慢。我需要更多的吞吐量和希望的功能...... – Matt

+0

「但是,它相當慢。」 - 它不應該。你說什麼慢? –

回答

2

我覺得這裏的問題是你「需要」持久性?如果您需要保護重複項,多個客戶端和持久性,那麼您將被迫爲您的隊列管理器執行鎖定方案,這會使您的性能降低。除非您將隊列存儲放在高速文件共享上,否則堅持本身會傷害您。

如果可以重新構建您的應用程序的生存隊列崩潰(保持飼料的服務器,或對消息的請求/響應架構),則可以繞過需要持久化。如果你這樣做,那麼你會發現你的隊列管理器專門在內存中運行,並且速度非常快。

+0

有趣。我們正在構建的應用程序的處理器密集程度很高,我曾設想過一種情況,即一臺服務器充當向其他「處理」服務器提供任務的經紀人。在這種情況下,我只需要代理上的隊列具有彈性。你有沒有一個參考點或例子來說明如何構建這樣的指南? – Matt

+0

地圖從谷歌減少模式? – Spence

+0

http://labs.google.com/papers/mapreduce.html – Spence

3

有上codeproject一個非常好的項目。這是MSMQ的輕量級替代品。 您可以使用自己選擇的持久性存儲,默認情況下它使用Sqlite。 這真的很好。