Dot-Net
到 MSMQ 還是不到 MSMQ?(或 SQL 表作為隊列)
我有一個分佈式系統,其中將有 1 個 SQL Server、1-n 個處理伺服器和 1-n 個數據供應商(網路上的硬體設備)。提供的數據需要在進入關係數據庫結構之前進行處理 - 由處理伺服器執行(作為 Windows 服務 - .net 程式碼來解析數據、處理數據並將其插入到關係結構中。)
處理潛在的載入而不減慢數據提供者的速度,我想實現一個隊列,但我不確定我是否想將 MSMQ 伺服器的複雜性添加到組合中。MSMQ 有沒有很好的替代方案,比如使用 DB(平面表)作為隊列?.NET 是否為 DB 隊列提供任何開箱即用的支持,或者是否有其他可靠隊列選項?
謝謝
編輯:(11 月 29 日,晚上 11:30)
聽起來 SQL 服務代理(SSB)可能會成功。
編輯:(11 月 30 日,上午 7 點 45 分)
在此主題上找到另一個非常有用的連結:http:
我還在研究將提供的數據的最大/最小大小。在他們的腦海中,有人知道 MSMQ 和/或 SSB 可容納的最大大小嗎?
MSMQ:4MB 消息大小
SSB:2GB 消息大小
編輯:(11 月 30 日,上午 8 點 15 分)
這裡的 MSMQ 和 SSB 之間進行了很好的比較:
我會使用 MSMQ,它不會增加太多複雜性,而且備份消息非常容易,因此即使在系統重新啟動後也可以繼續處理。你可以使用像 SSB 這樣的東西。
在這兩個選項中,MSMQ 實際上更簡單。如果您需要重新確定工作優先級的能力,或者讓處理代理只選擇某些類型的排隊作業,那麼您不能使用 MSMQ。如果您不需要任何這些花里胡哨,那麼 MSMQ 就是與 .NET 一起使用的蛋糕。