我的應用程序的瓶頸已經成爲使用MassTransit通過MSMQ發送和接收消息。發送和接收都在同一個應用程序中發生,但是通常使用內存隊列的消息太多。我們如何加快接收MSMQ的消息?
這裏是我的簡單的隊列設置:
messageBus = ServiceBusFactory.New(sbc =>
{
sbc.UseMsmq();
sbc.VerifyMsmqConfiguration();
sbc.UseMulticastSubscriptionClient();
sbc.ReceiveFrom("msmq://localhost/msg_queue");
sbc.Subscribe(subs =>
{
subs.Handler<EventMessage>(msg => Enqueue(msg));
});
});
對於我的實驗,MSMQ目前擁有約1萬條消息,我們不推任何新的消息了。我們在Enqueue()
中沒有做任何工作,除了發送消息的速度有多快外。根據這些信息,我們只能從MSMQ獲得每秒150到200條消息,當我希望在沒有網絡延遲的情況下,每秒至少有1000條消息。每條消息是< 2kb。
我們應該如何加快MSMQ通過MassTransit將消息傳遞到應用程序的速度,同時保持消息順序由隊列強制執行?
您可能已經通過這個,但有一個[看這裏](http://support.microsoft.com/kb/199428)。我們使用Websphere MQ並可能瞭解您現在正在使用MSMQ獲得的信息。 –
您的1,000條消息/秒希望是基於什麼? –
如果你目前有一百萬*未處理的消息積壓,那麼不要期待奇蹟,他們的數據存儲是巨大的。 MSMQ每秒處理數千條消息毫無困難。這在一段時間以前很糟糕,最好是清除隊列以恢復到合理的起點。 –