2012-08-16 61 views
3

是否有任何限制,我應該知道MSMQ的?MSMQ在實時系統

我想用它來讀取和寫入消息,但消息很多。

的數字應該是20萬左右 - 在一分鐘內300,000。

有什麼想法?它應該工作嗎?

+3

什麼是你想要使用MSMQ的原因是什麼? – 2012-08-16 13:07:34

+0

對我(非常好,有SSD)的開發人員機器進行快速性能測試,在非事務性的隊列中,給出:30,050條消息/秒或1,803,055條消息/分鐘。綽綽有餘你需要什麼。 – 2014-04-10 15:15:32

回答

5

MSMQ是一個隊列,其主要優點是將發送者和接收者的消息分離(例如,接收系統可以脫機)。

如果延遲時間保證是一個要求,那我就看看其他地方(如.NET遠程/ WCF NetTCP結合等)

這就是說,我們已經使用MSMQ低級別的硬件標準,突發速率>> 500條消息每秒,但在一個集成(EAI)環境中,與MSMQ的好處是:

  • 異步 - 其中發送和接收的消息可以以不同的速率
  • 潛在交易(例如DTC下,消息發生過程可以放在隊列中並在U下的數據庫中更新OW)
  • 已審覈(日期)
  • 死信隊列 - 即,如果接收方在定義的時間段之後從不接收消息。

低延遲從來不是一個要求 - 可靠性和完整性是主要驅動因素。

2

對於小的非事務性消息,這在理論上可能是可能的,但它在我個人聽說的高端。遠離事務性隊列離開,但 - 我嚴重懷疑你將能夠得到那種吞吐量在任何現實的平臺。

+0

+1 - 香菸盒計算表明,在10k /消息=每小時180GB時,持續的速率爲300k信息/分鐘。不在MSMQ的聯賽中。 – StuartLC 2012-08-16 13:24:12

+0

我忘了提及我即將刪除所有收到的消息,這些消息是由MSMQ服務器上運行的服務 – 2012-08-16 13:26:05

1

由於可怕的Insufficient Resources problem,我在MSMQ的這種卷中遇到了問題。

看起來這很少見,但它發生在我身上幾次。

0

看看這篇文章:link它說,MSMQ不應該被用作存儲產品,但用作傳輸機制。

您可能有服務從隊列中讀取消息並以事務方式處理它們。 Here (MSDN link)你可以找到一些例子。創建一個小樣本,做一些負載測試,看看它是否工作。