簡體   English   中英

我們如何加快從MSMQ接收消息?

[英]How can we speed up receiving messages from MSMQ?

我的應用程序的瓶頸已經變成通過MassTransit通過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目前有大約100萬條消息,我們沒有向它推送任何新消息。 我們沒有在Enqueue()做任何工作,除了時間消息的發送速度。

有了這些信息,我們每秒只能從MSMQ中獲取150到200條消息,當我希望在沒有網絡延遲時每秒至少有1000條消息。 每條消息<2kb。

我們如何加快MSMQ通過MassTransit將消息傳遞給應用程序的速度,同時保持隊列強制執行的消息排序?

我以前做過類似的事情。 如果我沒記錯的話,我們通過TimeToBeReceived指定了消息到期時間(從目標隊列接收已發送消息的總時間。默認為InfiniteTimeout。)。 請參閱此msdn鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM